Java风格:多变量赋值

时间:2012-07-18 21:32:38

标签: java variables syntax coding-style variable-assignment

采取以下措施:

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

其中filterFileFilter个对象,fnefFileNameExtensionFilter类型的实例变量。

您是否认为在同一行上为多个变量赋值是一种好的编码习惯?或者从示例中编写第6行更好,如下所示:

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

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

2 个答案:

答案 0 :(得分:3)

这是一个非常主观的问题。

我认为这更清楚:

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

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

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

答案 1 :(得分:0)

在使用FileNameExtensionFilter之类的非不可变对象时,我宁愿使用单独的行来避免混淆。例如,说:

是不一样的
MyObject var1 = new MyObject();
MyObject var2 = new MyObject();

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

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