如何解决STS中的PMD问题

时间:2018-12-14 14:44:05

标签: java pmd

AppCommonUtils.optional(customerVO.getPincode()).map(Integer::valueOf).map(mstPincodeCityRepository::findCityByPincode).ifPresent(mstPincode -> {
    mstAddress.setPincode(customerVO.getPincode());
    mstAddress.setMstCity(mstPincode.getMstCity());
});
  

对于上面的PMD代码,显示::可能违反了Demeter定律   (方法链调用)

有人可以建议如何删除此PMD警告消息吗?

1 个答案:

答案 0 :(得分:0)

问题取决于AppCommonUtils.optional。该方法将返回您未直接创建的对象,然后进行操作,这违反了该规则。

请参阅:https://pmd.github.io/pmd-6.10.0/pmd_rules_java_design.html#lawofdemeter

由于这是工厂方法,因此此行为是设计使然,而不是问题。我建议您只需suppress it