将布尔检查提取到局部变量

Chr*_*wes 1 java

有时我将布尔检查提取到局部变量中以实现更好的可读性.

你怎么看?

有什么缺点?

如果变量没有在其他地方使用,编译器是否为线路输入?我还想过用一个额外的块"{}"来缩小范围.

if (person.getAge() > MINIMUM_AGE && person.getTall() > MAXIMUM_SIZE && person.getWeight < MAXIMUM_WEIGHT) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)
final boolean isOldEnough = person.getAge() > MINIMUM_AGE;
final boolean isTallEnough = person.getTall() > MAXIMUM_SIZE;
final boolean isNotToHeavy = person.getWeight < MAXIMUM_WEIGHT;

if (isOldEnough && isTallEnough && isNotToHeavy) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

ska*_*man 11

我一直这样做.这种代码更具可读性.不这样做的唯一原因是它禁止运行时进行快捷方式优化,尽管智能VM可能会解决这个问题.

  • 这可以通过将检查提取到方法而不是简单的变量赋值来解决. (4认同)