У меня есть перечисление со статическим методом:
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 жалуется:
@NotNull
означает, что значение statusDbId не может быть нулевым. - Выражение всегда ложно.Измените это условие, чтобы оно не всегда оценивалось как «ложное» (
if( statusDbId == null ) {…}
).
Как я могу решить эту проблему SonarQube?Я думаю, что условие действительно независимо от аннотации @NotNull в статическом методе.