Sonarqube не может найти исключение для нулевого указателя - PullRequest
0 голосов
/ 06 апреля 2020

В приведенном ниже коде, почему sonarqube не находит возможное исключение нулевого указателя в методе "updateData"?

public class PropertyObject extends LinkedHashMap<String, Object> {

    /**
     * Unique serialization id.
     */
    private static final long serialVersionUID = 4789053897514939L;

}

public class BaseObject extends PropertyObject {
    @JsonProperty("_id")
    public String getId() {
        return String.valueOf(this.get("_id"));
    }

    @JsonProperty("_id")
    public void setId(Object id) {
        this.put("_id", String.valueOf(id));
    }

    public String getName() {
        return (String) this.get("name");
    }

    public void setName(String name) {
        this.put("name", name);
    }
}

private void updateData(BaseObject baseObject) {
        List<Map<String, String>> link = (List<Map<String, String>>) baseObject.get("ratioMap");
            for (Map<String, String> linkmap : link) {

            }
        }
    }

Я вижу потенциальное исключение нулевого указателя в методе updateData в строке № 2. Есть ли какие-либо способ, которым я могу заставить sonarqube самостоятельно найти эти проблемы?

1 Ответ

0 голосов
/ 07 апреля 2020

Прежде всего, Sonar - это инструмент для анализа кода c. Это зависит от простых деклараций для поиска возможных NPE. Во-вторых, я предполагаю, что у вас есть активное правило для обнаружения возможных разыменований NullPointer. И последнее, но не менее важное: я думаю, что он не будет обнаруживать NPE в частных методах, которые не называются ...

...