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

Отрицательный раунд

round() функция округляет число плавающее к данной точности в десятичных цифрах, но точность может быть отрицательной:

>>> str(round(1234.5678, -2))
'1200.0'
>>> str(round(1234.5678, 2))
'1234.57'

Примечание: round() всегда возвраты плавание, str() используемый в вышеупомянутом примере, потому что математические операции с плавающей точкой неточны, и под 2.x, второй пример может распечатать как 1234.5700000000001. Также посмотрите decimal модуль.

6
задан Ira Baxter 2 September 2009 в 03:03
поделиться

2 ответа

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

4
ответ дан 17 December 2019 в 07:07
поделиться

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

Для реализации этого может быть 2 варианта:

  1. Аннотация класса во время компиляции, которая обрабатывается (например, вашей IDE) для генерировать соответствующие методы. Могут ли аннотации изменять сгенерированный байт-код классов, в которых они объявлены? Я думаю, что эта оценка - действительно плохая идея, потому что вы можете ' t сказать, что происходит, посмотрев на свой исходный код
  2. Аннотации среды выполнения для соответствующих методов, чтобы указать, что они должны быть оценены с помощью специального механизма. Это по-прежнему требует, чтобы вы объявляли и аннотировали свои методы, и я также не уверен, как вы на самом деле перехватываете вызовы методов, чтобы использовать аннотацию в любом случае
0
ответ дан 17 December 2019 в 07:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: