将 "condition ? expr1 : expr2" 链转换为 "if" 链

Convert a chain of "condition ? expr1 : expr2" to a chain of "if"s

是否有任何自动工具可以将 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

的复杂链时出错

super(whatever); 应该始终是第一行,您的三元运算符是一种设计解决方案,您不能将其重构为 if 链(除非您将其包装到一个方法中,如 Andy ).

大多数现代 IDE 都可以将三元运算符转换为 if 语句,无论表达式多么复杂。

我查了我的IDEA上的三级三元运算,提示

如果您的没有类似功能,请寻找插件,或考虑切换到更高级的环境。

super(...)(或this(...))总是需要成为构造函数中的第一个语句,因此您不能在那里使用 if 语句链。

看来你需要提取一个方法:

static String method() {
  // Chain of if statements.
}

然后从构造函数中调用它:

super(method(), BoxLayout.y());