Устраните дубликаты аннотаций JSpecify `@Nullable`JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Устраните дубликаты аннотаций JSpecify `@Nullable`

Сообщение Anonymous »

Я использую аннотации NULL JSpecify, чтобы определить, какие методы могут принимать и возвращать значения NULL. Во время компиляции плагин NullAway ErrorProne проверяет эти определения, например. проверяет, не передается ли нулевое значение параметру, который этого не допускает.
По умолчанию предполагается, что все значения не равны нулю, поэтому необходимо добавить @Nullable< /code> для аргументов метода и возвращаемых типов, которые могут быть нулевыми, например

Код: Выделить всё

public class ResourceConverters {
public static @Nullable Resource toResource(@Nullable MultipartFile file) {
return file != null ? file.getResource() : null;
}

public static @Nullable NamedByteArrayResource toNamedByteArrayResource(
@Nullable MultipartFile file) {
return file != null ? new NamedByteArrayResource(file.getOriginalFilename(), file.getBytes()) : null;
}
}
Есть ли способ избежать дублирования аннотации @Nullable для каждого параметра и типа возвращаемого значения?
JSpecify предоставляет аннотацию @NullMarked . Когда это используется на уровне класса, оно эффективно применяет значение по умолчанию not-null ко всем параметрам метода и возвращаемым значениям в этом классе. Я ищу противоположное, то есть способ применить значение по умолчанию, равное нулю, на уровне класса.
JSpecify также предоставляет аннотацию @NullUnmarked, но это кажется чтобы применить значение по умолчанию «нулевое значение неизвестно», но я хочу, чтобы по умолчанию было «известно, что оно может быть нулевым».

Подробнее здесь: https://stackoverflow.com/questions/792 ... nnotations
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»