Используют ли какие-либо библиотеки Java аннотации для генерации кода?

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

  •  19-09-2019
  •  | 
  •  

Вопрос

Кто-нибудь знает о библиотеке, которая использует методы (аннотации и работу с классами), описанные в Эта статья для автоматического создания стандартных методов объекта toString(), Equals() и hashcode() для стандартных классов Java?

Это было полезно?

Решение

Да, проект Ломбок делает это.Видеть http://projectlombok.org .Он поддерживает не только Javac, но и Eclipse.Таким образом, методы не находятся в исходном коде, а отображаются в виде структуры.

Другие советы

Я, конечно, этого не видел и не совсем уверен, какую пользу это принесет.Я нахожу это автоматическим toString поколение обычно не что вы хотите при просмотре файлов журналов, и большинство IDE имеют инструменты, позволяющие генерировать hashCode и equals реализации, хотя и предоставлены, они не отражают автоматически какие-либо изменения схемы внутри вашего класса.

Вариантов реализации будет 2:

  1. Аннотация класса времени компиляции, которая обрабатывается (например.вашей IDE) для создания соответствующих методов. Могут ли аннотации изменять сгенерированный байт-код классов, в которых они объявлены? Я думаю, что этот подход - действительно плохая идея, потому что вы не можете сказать, что происходит, глядя на исходный код.
  2. Аннотация времени выполнения соответствующих методов, указывающая, что их следует оценивать с помощью специального механизма.Это по-прежнему требует от вас объявления и аннотирования ваших методов, и я также не уверен, как бы вы это сделали на самом деле. перехватывать вызовы методов для использования аннотации в любом случае
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top