0

采取以下措施:

if (filter instanceof FileNameExtensionFilter) {
    fnef = (FileNameExtensionFilter) filter;
    String[] extensions = fnef.getExtensions();
    if (extensions.length > 1) {
        fnef = filter = new FileNameExtensionFilter(fnef.getDescription(), extensions[0]);
    }
}

其中filter是类型的FileFilter对象和fnef实例变量FileNameExtensionFilter

您是否认为为同一行上的多个变量赋值是一种良好的编码习惯?或者最好将示例中的第 6 行写成如下:

fnef = new FileNameExtensionFilter(fnef.getDescription(), extensions[0]);
filter = fnef;

我个人更喜欢后者,尽管我想听听你的想法。

4

2 回答 2

3

这是一个相当主观的问题。

我认为这更清楚:

fnef = new FileNameExtensionFilter(fnef.getDescription(), extensions[0]);
filter = fnef;

但是任何有经验的开发人员都会明白这一点:

fnef = filter = new FileNameExtensionFilter(fnef.getDescription(), extensions[0]);
于 2012-07-18T21:37:04.253 回答
0

在使用像 FileNameExtensionFilter 这样的非不可变对象时,我宁愿使用单独的行来避免混淆。例如,不一样的说法是:

MyObject var1 = new MyObject();
MyObject var2 = new MyObject();

MyObject var1, var2;
var1 = var2 = new MyObject();

在第一种情况下,变量是具有相同值的不同对象,但在第二种情况下,它们是相同的变量。多变量赋值是有风险的,所以我认为这是不好的做法。这仍然是一个品味问题。

于 2012-07-18T22:10:24.423 回答