需要有关 NPath 复杂性的启示
Need enlightment about NPath complexity
我将 PMD 添加到我的 Eclipse 工作区并且我正在清理代码。
我最复杂的方法说它的 NPath 复杂度为 804,没问题,它可能需要重构。
但是我有一些看起来相当简单的东西,它的 NPath 复杂度为 3125,这似乎是错误的:
public void toUpperParams() {
valueParam1 = StringUtils.isNotEmpty(valueParam1) ? valueParam1.toUpperCase() : null;
valueParam2 = StringUtils.isNotEmpty(valueParam2) ? valueParam2.toUpperCase() : null;
valueParam3 = StringUtils.isNotEmpty(valueParam3) ? valueParam3.toUpperCase() : null;
valueParam4 = StringUtils.isNotEmpty(valueParam4) ? valueParam4.toUpperCase() : null;
valueParam5 = StringUtils.isNotEmpty(valueParam5) ? valueParam5.toUpperCase() : null;
}
我是不是漏掉了什么?
似乎三元增加了NPath因子。
我可以找到以下两个解释:
Question on Whosebug
我认为你没有遗漏任何东西。根据我的计算,根据以下文章中给出的定义,NPath 应该为 10:NPath complexity
我将 PMD 添加到我的 Eclipse 工作区并且我正在清理代码。
我最复杂的方法说它的 NPath 复杂度为 804,没问题,它可能需要重构。
但是我有一些看起来相当简单的东西,它的 NPath 复杂度为 3125,这似乎是错误的:
public void toUpperParams() {
valueParam1 = StringUtils.isNotEmpty(valueParam1) ? valueParam1.toUpperCase() : null;
valueParam2 = StringUtils.isNotEmpty(valueParam2) ? valueParam2.toUpperCase() : null;
valueParam3 = StringUtils.isNotEmpty(valueParam3) ? valueParam3.toUpperCase() : null;
valueParam4 = StringUtils.isNotEmpty(valueParam4) ? valueParam4.toUpperCase() : null;
valueParam5 = StringUtils.isNotEmpty(valueParam5) ? valueParam5.toUpperCase() : null;
}
我是不是漏掉了什么?
似乎三元增加了NPath因子。 我可以找到以下两个解释:
Question on Whosebug
我认为你没有遗漏任何东西。根据我的计算,根据以下文章中给出的定义,NPath 应该为 10:NPath complexity