Я получаю "Possible null pointer dereference due to return value of called method"
ошибку FindBugs в следующей строке.
Specification spec = Specification.where(idSpec).and(nameSpec)
.and(typeSpec).and(statusSpec);
Спецификация - это класс JPA данных Spring. Некоторые из его фрагментов:
@Nullable
static <T> Specification<T> where(@Nullable Specification<T> spec) {
return spec == null ? (root, query, builder) -> null : spec;
}
@Nullable
default Specification<T> and(@Nullable Specification<T> other) {
return composed(this, other, (builder, left, rhs) -> builder.and(left, rhs));
}
Это действительная ошибка FindBugs? Как это исправить?
Как мне избежать нулевых проверок при каждом вызове where
и and
? Таким образом, такие проверки на null уменьшат читаемость кода, который в настоящее время читается так же, как запрос с использованием цепочки методов.