Проект ломбок против шаблонов Eclipse / генерация кода

StackOverflow https://stackoverflow.com/questions/2616676

  •  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 обрабатывает нагрузку, создавая прокси для перекрестной ссылки. Это сохраняет память и повысить производительность на огромных доменных деревьях
  • И многое другое...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top