为了账号安全,请及时绑定邮箱和手机立即绑定

用于简化条件算法的 Intellij 检查规则

用于简化条件算法的 Intellij 检查规则

慕沐林林 2022-11-30 14:37:11
我们有一些简短的方法可以将一些值从一个域转换到另一个域,它通常有一个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')。


//img1.sycdn.imooc.com//6386fa2f0001b95806540415.jpg

查看完整回答
反对 回复 2022-11-30
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信