是否有任何自动工具将condition ? expr1 : expr2
链转换为可读性更高的“ if”链?
我在Netbeans中使用Java。
例如:
super(dao == null || (dao.isX.get() != null && dao.isX.getBoolean()) ? (isY ? "String1" : (isZ ? "String2" : (isA ? String3 : "String4"))) : "String5", BoxLayout.y());
注意:我可以手动完成此操作,但是当我发现condition ? expr1 : expr2
的复杂链时,我需要一个自动工具来避免错误
答案 0 :(得分:3)
super(whatever);
应该始终是第一行,您的三元运算符是一种设计解决方案,您无法将其重构为if
s链(除非您将其包装为Andy {{3 }}。
无论表达式多么复杂,大多数现代IDE都可以将三元运算符转换为if语句。
我检查了我的IDEA,进行了三级三元操作
如果您没有类似的功能,请寻找插件,或考虑切换到更高级的环境。
答案 1 :(得分:1)
super(...)
(或this(...)
)始终必须是构造函数中的第一条语句,因此您不能在其中使用if链。
您似乎需要提取一种方法:
static String method() {
// Chain of if statements.
}
然后从构造函数中调用它:
super(method(), BoxLayout.y());