我们有一些简短的方法可以将一些值从一个域转换到另一个域,它通常有一个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 上是否有一些规则暗示了这一点?
1 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
您可以使用“将返回更接近值的计算.. ”快速修复“返回”与结果计算检查分开(Java |代码风格问题|“返回”与结果计算分开),然后应用“删除冗余'else' ”冗余 'else'检查的快速修复(Java | 控制流问题 | 冗余 'else')。
添加回答
举报
0/150
提交
取消