Проект ломбок против шаблонов Eclipse / генерация кода
-
26-09-2019 - |
Вопрос
Делает Проект Ломбок Предложите любую выгоду по сравнению с шаблонами кода / поколения кода в Eclipse? Есть ли какие-либо нисходящие (кроме как в том числе .jar)?.
Решение
Одним из преимуществ ломбок является то, что когда-то вы аннотировали класс, скажем, Annotation @data, вам никогда не нужно регенерация кода при внесении изменений. Например, если вы добавите новое поле, @data автоматически включает в себя это поле в равных, хэшкоде и методах ToString. Вам нужно будет вручную сделать это изменение при использовании сгенерированных методов Eclipse. Некоторое время вы можете предпочесть ручной контроль, но для большинства случаев я не ожидаю.
Другие советы
Преимущество Lombok заключается в том, что код на самом деле не там - то есть классы гораздо более читаемые и не загромождаются.
Преимущества:
- Очень простой в использовании
Классы гораздо чище («нет кода котельной»), особенно «структурный внутренний классы сокращаются до минимума:
@Data private class AttrValue { private String attribute; private MyType value; }
Это создаст как GetTers, так и затуристы, TOSTRING (), и правильные методы HASH () / COVALAL (), включая обе вариации. Вариант с
@Value
Создает неизменяемую структуру (без урегулирования, все поля финала).- Нет необходимости генерировать / удалить код при изменении полей (GetTers, Benters, ToString, Hash, равен)
- Нет вмешательства в методы вручную: просто добавьте свой собственный устойчивый сеттер к классу, где это необходимо. Ломбок пропускает это и генерирует все остальное
Недостатки:
- Нет рефакторинга имени, все же: переименование
value
выше не будет (пока) переименоватьgetValue()
а такжеsetValue()
- Может слегка замедляться
toString
Выход не так хорош, как, например, ToStringBuilder от Apache Commons
Очень немногие приходят на ум:
- Он основан на аннотации, поэтому нет хорошего для унаследованного проекта еще в Pre-Java5 (Delombok. может помочь). На самом деле, это требует использования компилятора Javac V1.6.
- у него все еще есть ограничения относительно нескольких конструкторов
Вопрос зависимости не следует упускать из виду, но вы исключены его с вашего вопроса.
Eclipse EMF предлагает некоторые особенности, которые очень удобны, какой Lombock еще не поддерживает:
- Мощные механики уведомлений, чтобы получить информацию об изменениях в ваших случаях
- Общий API без Java Repliction. Доступ и изменение экземпляров без сильной ссылки на тип
- Команда und api на основе редактирования
- Перекрестные ссылки между моделями: создание и загрузка моделей деревьев и EMF обрабатывает нагрузку, создавая прокси для перекрестной ссылки. Это сохраняет память и повысить производительность на огромных доменных деревьях
- И многое другое...