Вниз  Project Lombok — война Broilerplate-коду
- 5.11.2014 / 15:51
Oak
  Пользователь

Oak 
Сейчас: Offline
http://projectlombok.org/
Для уставших писать бесконечные геттеры/сеттеры в три строчки и перегруженные классы-контейнеры в стиле
  1. public class ThisObject{
  2.     private String name;
  3.     private int index;
  4.  
  5.     public ThisObject(String name, int index){
  6.         this.name = name;
  7.         this.index = index;
  8.     }
  9.  
  10.     public String getName(){
  11.         return name;
  12.     }
  13.  
  14.     public void setName(String name){
  15.         this.name = name;
  16.     }
  17. }

Пользуюсь очень давно и очень рад.
Размер у неё большой, это да, но это библиотека времени компиляции, и в рантайме она не нужна.
Для работы в NetBeans надо включить "разрешить обработку аннотаций в редакторе" на вкладке "Выполнение" в свойствах проекта.
__________________
 Эль Презеденте

Изменено Oak (5.11 / 16:13) (всего 4 раза)
- 5.11.2014 / 15:59
Virus-ON
  Пользователь

Virus-ON 
Сейчас: Offline
Project lobok... Чёрт, project lobok, а не, всё норм, project Lombok.
Бан от Magatino:
Причина: Оффтоп
- 5.11.2014 / 16:08
RblSb
  Пользователь

RblSb 
Сейчас: Online
this.name = name;
зачем? мы же и так передаем в параметре переменную, смысл тогда в параметрах.
- 5.11.2014 / 16:10
Oak
  Пользователь

Oak 
Сейчас: Offline
RblSb, расширил код в первом посте, чтобы было понятнее
__________________
 Эль Презеденте
- 5.11.2014 / 16:12
RblSb
  Пользователь

RblSb 
Сейчас: Online
Oak, а, ну я просто не называю одинаково переменные и не приходится ничего переопределять и все счастливы.
- 5.11.2014 / 16:14
Oak
  Пользователь

Oak 
Сейчас: Offline
RblSb, ну, даже не знаю, что надо написать, чтобы стало понятнее. Если коротко — проблема не в this.name = name;
__________________
 Эль Презеденте

Изменено Oak (5.11 / 16:15) (всего 2 раза)
- 5.11.2014 / 16:16
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Oak, На генерирование конструктора, и геттера/сеттера в нетбинсе уходит максимум 30 секунд. На подключение этой штуки намного больше. А если учесть, что при каждой компиляции, часть времени будет затрачивать на обработку аннотаций, то выигрыша мы никакого толком и не имеем.

RblSb, дело отнюдь не в именах. Надо же как-то присвоить полям класса значения извне. Пусть хоть так будет, проблема останется:
  1. Main(int i, int k) {
  2.     num1 = i;
  3.     num2 = k;
  4. }

__________________
 let live

Изменено aNNiMON (5.11 / 16:19) (всего 1 раз)
- 5.11.2014 / 16:18
Magatino
  Администратор

Magatino 
Сейчас: Offline
RblSb (05.11.2014/16:12)
Oak, а, ну я просто не называю одинаково переменные и не приходится ничего переопределять и все счастливы.
Вообще то тебе с такими вопросами сюда.
А переопределять придёться, если будешь писать свои библиотеки.
- 5.11.2014 / 16:20
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Magatino, RblSb, ребята, о чём вы? Какие переопределения?
__________________
 let live
- 5.11.2014 / 16:22
Oak
  Пользователь

Oak 
Сейчас: Offline
aNNiMON, правая кнопка по проекту -> подключить библиотеку -> lombok -> работает для всего проекта

А дальше пиши @AllArgsConstructors, @Data, @Getter, @Setter и тд в любом классе проекта.

Будет занимать секунд пять от силы — для того, чтобы нажать Ctrl-Space после @Ge :)
__________________
 Эль Презеденте

Изменено Oak (5.11 / 16:27) (всего 1 раз)
Наверх  Всего сообщений: 24
Фильтровать сообщения
Поиск по теме