SonarQube жалуется, что выражение всегда ложно - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть перечисление со статическим методом:

public static ProductSyncingStatus fromStatus(@NotNull final Integer statusDbId) throws IllegalArgumentException {
    if( statusDbId == null ) {
        throw new IllegalArgumentException(String.format("Status ID is not set.", statusDbId));
    }
    switch (statusDbId) {
        case 0: return STATUS_PENDING;
        case 10: return RAWDATA_CREATED;
        default: throw new IllegalArgumentException(String.format("Status ID %x is not supported.", statusDbId));
    }
} 

Аннотация @NotNull только сообщает разработчику, что параметр может / не должен быть нулевым ... но возможно передать нулевое значениезначение.Однако SonarQube жалуется:

  1. @NotNull означает, что значение statusDbId не может быть нулевым.
  2. Выражение всегда ложно.Измените это условие, чтобы оно не всегда оценивалось как «ложное» (if( statusDbId == null ) {…}).

Как я могу решить эту проблему SonarQube?Я думаю, что условие действительно независимо от аннотации @NotNull в статическом методе.

...