幕布斯6054654
2023-07-19 16:14:20
這是我的代碼@Overrideprotected void setValue(Object value) { if (Boolean.TRUE.equals(value)) { // do something for true } else if (Boolean.FALSE.equals(value)) { // do something for false } else if (null == value) { // got SonarLint warning here // do something for null } else { // for any other non-null and not Boolean object call the super method super.setValue(value); }}在標有“//此處有 SonarLint 警告”的行處,我收到警告:Change this condition so that it does not always evaluate to "true。我應該如何改變我的方法來避免這個警告?
1 回答

猛跑小豬
TA貢獻1858條經(jīng)驗 獲得超8個贊
如果 value 是布爾值并且既不是 TRUE 也不是 FALSE,那么它必須為 null,因為布爾對象只能是 TRUE 或 FALSE。因此,如果它沒有落入前兩個 if 語句,則 value 始終為 null,因此會出現(xiàn) sonarlint 警告。對于你的情況我會做這樣的事情:
if (value instanceof Boolean) {
if (Boolean.TRUE.equals(value)) {
// do something for true
}
else {
// do something for false
}
}
else if (value != null) {
// for any other non-null and not Boolean object call the super method
super.setValue(value);
}
else {
// do something for null
}
添加回答
舉報
0/150
提交
取消