如何解决如何在java中用括号对长布尔表达式进行换行
如何将这个表达式包装在 java 中以提高可读性,约束条件是括号内的子表达式 (shouldSendSomething(x) && loooongFunctionName1(x) && looooongFunctionName2(x))
太长而不能放在一行中?
!(loooongFunctionName0(x) && loooongFunctionName1(x) && looooongFunctionName2(x)) && looooongFunctionName3(x) && looooongFunctionName4(x) && looooongFunctionName5(x)
解决方法
也许每个条件都在一个新行上?
if (!(loooongFunctionName0(x)
&& loooongFunctionName1(x)
&& looooongFunctionName2(x))
&& looooongFunctionName3(x)
&& looooongFunctionName4(x)
&& looooongFunctionName5(x)) {
}
后期编辑:如果条件太多,通常意味着某处存在设计问题,可能需要进行一些重构。
,在这种情况下,我建议创建一些辅助方法。将一些条件包装到一个方法中,这将简化 if
条件。
function foo() {
return bar && baz && qux;
}
并在您的 if
条件下使用它,例如:
if (foo()) { ... }
或
if (!foo()) { ... }
,
我个人更喜欢将结果分配给有意义且简短(如果可能)的变量,然后在 if 子句中使用它
boolean name0 = loooongFunctionName0(x);
boolean name1 = loooongFunctionName1(x);
boolean name2 = loooongFunctionName2(x);
boolean name3 = loooongFunctionName3(x);
boolean name4 = loooongFunctionName4(x);
boolean name5 = loooongFunctionName5(x);
if (!(name1 && name2 && name3 && name4 && name5)) {
// something
}
,
根据java的编码标准,一行最多可以有80个字符,所以这里可以这样包装:
!(loooongFunctionName0(x)
&& loooongFunctionName1(x)
&& looooongFunctionName2(x))
&& looooongFunctionName3(x)
&& looooongFunctionName4(x)
&& looooongFunctionName5(x)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。