Lombok val — беспроблемные final локальные переменные

Цикл статей «Project Lombok».

Следующая статья — «Lombok @NonNull, или как я перестал беспокоиться и полюбил NullPointerException».
Предыдущая статья — «».

Добавлено в версии 0.10. Вы можете использовать val в качестве типа при объявлении локальной переменной вместо указания реального типа. При этом тип будет выводиться из выражения инициализации. Локальная переменная будет сделана неизменяемой (final). Эта возможность работает в локальных переменных и для циклов foreach, но не для полей. Обязательно требуется наличие выражения инициализации.

Тип val — это реальный тип, и он находится как реальный класс в пакете lombok. Вы должны импортировать его для работы (или для использования lombok.val в качестве типа). Присутствие этого типа в объявлении локальной переменной добавляет ключевое слово final и копирует тип из выражения инициализации, который переопределяет поддельный тип val.

Эта опция на момент написания этого поста не работает нормально в NetBeans. Разработчики работают над исправлением этого.

С использованием Lombok:

Чистая Java:

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

Мелкий шрифт

Для составных типов наиболее общий класс выводится, но не интерфейс. Например,  bool ? new HashSet() : new ArrayList()  — это выражение со составным типом, то есть результат одновременно AbstractCollection и Serializable. Здесь выведется тип AbstractCollection, так как он является классом, а Serializable — интерфейс.

В неоднозначных случаях, например когда выражение инициализации равно null, выводится тип java.lang.Object.

 

Цикл статей «Project Lombok».

Следующая статья — «Lombok @NonNull, или как я перестал беспокоиться и полюбил NullPointerException».
Предыдущая статья — «».


Поделиться:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован.

*