【发布时间】:2015-10-01 10:03:23
【问题描述】:
我有以下代码:
private Facility updateFacility(Facility newFacility, Facility oldFacility) {
if (newFacility.getCity() != null)
oldFacility.setCity(newFacility.getCity());
if (newFacility.getContactEmail() != null)
oldFacility.setContactEmail(newFacility.getContactEmail());
if (newFacility.getContactFax() != null)
oldFacility.setContactFax(newFacility.getContactFax());
if (newFacility.getContactName() != null)
oldFacility.setContactName(newFacility.getContactName());
// ......
}
大约有 14 项此类检查和分配。即除少数外,我需要修改 oldFacility 对象的所有字段。我得到了这个代码 14 的圈复杂度,根据 SonarQube,它“大于 10 个授权”。关于如何降低圈复杂度的任何想法?
【问题讨论】:
-
就我个人而言,我认为目标不应该是降低圈复杂度——我认为应该是创建可读的代码。这是非常可读的。
-
我猜你想要做的是选择性克隆。
标签: java sonarqube cyclomatic-complexity