【发布时间】:2012-09-14 06:32:24
【问题描述】:
我可以像这样重构吗,这些是否等效,因此更简单的代码版本是首选?
重构前:
if (!matcher.matches() && !matcher2.matches() && !matcher3.matches()
&& !matcher4.matches() && !matcher5.matches()
&& !matcher6.matches() && !matcher7.matches()
&& !matcher8.matches()) {
return true;
} else
return false;
重构后:
return (matcher.matches() || matcher2.matches() || matcher3.matches()
|| matcher4.matches() || matcher5.matches()
|| matcher6.matches() || matcher7.matches()
|| matcher8.matches())
【问题讨论】:
-
是的,差不多:en.wikipedia.org/wiki/De_Morgan%27s_laws(你可能需要在最后应用一个额外的反转。不过我还没有检查。)
-
实际上,任何有价值的 IDE 都会为您执行此重构。 Eclipse 使用 Ctrl + 1 和 IntelliJ 使用 Alt + Enter
标签: java refactoring boolean-logic demorgans-law