Аннотация @NonNull в проекте Lombok

Недавно я начал использовать lombok в своем проекте. В документации ломбока указано, что аннотацию @NonNull можно настроить так, чтобы она выдавала либо NullPointerException, либо IllegalArgumentException. Указано, что по умолчанию будет выброшено NullPointerException. Также указано, что для того, чтобы бросить IllegalArgumentException, я должен установить lombok.nonNull.exceptionType = IllegalArgumentException. Но я не понимаю, где я должен указать lombok.nonNull.exceptionType = IllegalArgumentException в своем коде. `

import com.sandesha.lombak.domain.Employee;

import lombok.NonNull;

public class EmployeeOperation {

/**
 * @NonNull performs null check
 * @param e1
 * @param e2
 * @return
 */

public boolean isEqual(@NonNull Employee e1, @NonNull Employee e2)
{
    return e1.equals(e2);
}
}

Помогите мне, пожалуйста. Спасибо.


person Naanavanalla    schedule 06.08.2017    source источник


Ответы (2)


Вам нужно создать файл с именем lombok.config в домашнем каталоге вашего проекта, который является файлом конфигурации ломбока по умолчанию для вашего проекта. Файл выглядит так:

lombok.nonNull.exceptionType = IllegalArgumentException
lombok.nonNull.flagUsage = [warning | error] 

Вы можете увидеть проект

person sunkuet02    schedule 06.08.2017
comment
Спасибо, это очень помогло. Но есть ли способ, при котором я смогу бросить NullPointerException куда-нибудь и IllegalArgumentException куда-нибудь? - person Naanavanalla; 06.08.2017
comment
Ага. Для этого нужно проверить вручную (другого способа я не нашел). Например: if (param == null) throw new NullPointerException("param"); Но по умолчанию: IllegalArgumentException, как вы уже установили. - person sunkuet02; 06.08.2017
comment
@SandeshaJ Вы можете использовать несколько файлов lombok.config. Для каждого пакета есть поиск, начинающийся в его каталоге и идущий вверх, поэтому более конкретные настройки переопределяют настройки в более высоких каталогах. Но, пожалуйста, не делайте этого, придерживайтесь одного исключения. Это не имеет большого значения, но вы в лучшем случае запутаетесь. - person maaartinus; 06.08.2017

Это не параметризовано в аннотации @NonNull, его можно указать только в ключах конфигурации @NonNull :

Поддерживаемые ключи конфигурации:

lombok.nonNull.exceptionType = [NullPointerException | Незаконное АргументИсключение | Утверждение] (по умолчанию: NullPointerException).

[...]

Создайте файл lombok.config в корневом каталоге вашего проекта, содержащий эту строку:

lombok.nonNull.exceptionType = IllegalArgumentException

Дополнительные сведения о системе конфигурации Lombok см. на странице документации Lombok.

person tom    schedule 06.08.2017