我们有一些简短的方法可以将一些值从一个域转换到另一个域,它通常有一个switch或多个巨大的块ifs,例如:
private DomainB translateSomething(final DomainA data) {
DomainB result = null;
if (data != null) {
if (CONSTANT_A_VALUE_X.equals(data)) {
result = CONSTANT_B_VALUE_X;
} else if (CONSTANT_A_VALUE_Y.equals(data)) {
result = CONSTANT_B_VALUE_Y;
} else if (CONSTANT_A_VALUE_Z.equals(data)) {
result = CONSTANT_B_VALUE_Z;
} else {
result = CONSTANT_B_VALUE_W;
}
}
return result;
}
它可能是一个switch而不是if,或者每个结果可以有多个条件,甚至可以在方法参数上接收多个域以帮助确定一个结果,这就是为什么它不能是地图的原因。
当我看到这个时,我在第一个条件上应用了短路,并删除了所有else块,而不是将值分配给最终将返回的变量,我将返回放在条件本身内,产生以下代码:
private DomainB translateSomething(final DomainA data) {
if (data == null) {
return null;
}
if (CONSTANT_A_VALUE_X.equals(data)) {
return CONSTANT_B_VALUE_X;
}
if (CONSTANT_A_VALUE_Y.equals(data)) {
return CONSTANT_B_VALUE_Y;
}
if (CONSTANT_A_VALUE_Z.equals(data)) {
return CONSTANT_B_VALUE_Z;
}
return CONSTANT_B_VALUE_W;
}
我已经厌倦了几次,我知道 IntelliJ 在检查规则方面有很大帮助,IntelliJ 上是否有一些规则暗示了这一点?
慕的地6264312
相关分类