我有以下(简化(代码的情况:
if (x== null && y == null && z == null) {
logger.warning("bla bla");
} else if (x != null) {
// Do some dispatch for x
} else if (y != null) {
// Do some dispatch for y
} else {
// Do some dispatch for z
}
我对* != null
表达式违反PMD违规(即使我对if情况进行了肯定比较(==
(。
混淆三元(PMD:混淆(
在具有其他条款的if表达式中,避免在测试中否定。
例如,rephrase:if(x!= y(diff((;否则((;AS:if(x == y(same((;否则diff((;如果(x!= y(没有其他情况的情况通常是返回案例,那么对此规则的一致使用使代码更易于阅读。
另外,这可以解决琐碎的订购问题,例如错误案例首先出现吗?还是常见的情况首先?
我应该如何重写这些表达式?
怎么样:
if (x != null) {
// Do some dispatch for x
} else if (y != null) {
// Do some dispatch for y
} else if (z != null) {
// Do some dispatch for z
} else {
log.warn("error msg");
}