采取以下措施:
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;
我个人更喜欢后者,但我想听听你的想法。
答案 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();
在第一种情况下,变量是具有相同值的不同对象,但在第二种情况下,它们是相同的变量。多变量赋值是有风险的,所以我认为这是不好的做法。这还是一个品味问题。