2014-10-15 2 views
3

Есть ли какой-либо фреймворк, который может генерировать исключение, если я передаю null как параметр в @NotNull аннотации? Я не имею в виду статический анализ, но проверки времени выполнения.Как сделать исключение исключения @NotNull throw?

Если нет, то как его реализовать?

+0

Я не имею в виду статический анализ, но поведение во время работы –

+0

Аннотации не имеют эффекта выполнения, за исключением того, что они видны через отражение. Вам нужно будет написать трансформатор байт-кода («усилитель», если необходимо), чтобы автоматически добавлять нулевые проверки. –

+1

@JeffreyBosboom На самом деле, это не зависит от политики хранения аннотации –

ответ

3

Lombok @NonNull генерирует эти шаблонного для вас. Вместо метода аннотации с @NotNull вместо этого вы комментируете параметр @NonNull.

import lombok.NonNull; 

public class NonNullExample extends Something { 
    private String name; 
    public NonNullExample(@NonNull Person person) { 
     super("Hello"); 
//// if (person == null) { 
////  throw new NullPointerException("person"); 
//// } 
     this.name = person.getName(); 
    } 
} 

Смотрите многие вопросы, помеченные , чтобы узнать больше.

7

Если вы используете Java 6 или более низкую версию, вы можете использовать GuavaPreconditions.

Preconditions.checkNotNull(param); 

Однако, если вы используете Java 7 или более поздней версии, то есть метод Utility в Objects.

Objects.requireNonNull(param); 

И возникает перегрузка, которая принимает строку, чтобы добавить сообщение NullPointerException, которое будет выброшено

Objects.requireNonNull(param,"Param cannot be null"); 
+0

Java 7+ Objects.requireNotNull (Object o). Никаких внешних библиотек не требуется. – Ezequiel

Смежные вопросы