对于以下代码

boolean changed = null == oldValue? oldValue != newValue : !oldValue.equals(newValue);


我收到PMD警告:“使用equals()比较对象引用”。但是,如果我遵循这个建议,我将获得NPE。是PMD规则的错误还是我的编程风格很糟糕?

最佳答案

只需稍作更改即可:

boolean changed = null == oldValue ? newValue != null : !oldValue.equals(newValue);

10-06 08:40