对于以下代码
boolean changed = null == oldValue? oldValue != newValue : !oldValue.equals(newValue);
我收到PMD警告:“使用equals()比较对象引用”。但是,如果我遵循这个建议,我将获得NPE。是PMD规则的错误还是我的编程风格很糟糕?
最佳答案
只需稍作更改即可:
boolean changed = null == oldValue ? newValue != null : !oldValue.equals(newValue);