2012-01-25 1 views
3

Я хочу написать аспект, который будет генерировать геттеры/сеттеры для полей класса, в котором он используется.Создание Getters/Setters с AspectJ

Я новичок в AspectJ, может кто-нибудь указать мне в правильном направлении? Образец будет приятным.

ответ

1

То, что вы ищете, это Project Lombok. Он генерирует геттеры/сеттеры и различные другие удобные методы. Он интегрируется с Eclipse, поэтому видны технически не существующие аксессоры.

+0

Это почти то, что мне нужно, но мне нужно будет динамически добавлять '@ Getter' и' @ Setter', возможно ли это с AspectJ? –

+0

Проект Lombok работает во время компиляции. Динамическое добавление аннотаций не решит вашу проблему. – EdMelo

0

(не совсем уверен, но ...) Я боюсь, что аспектное программирование может добавить поведение к классам, а не к интерфейсу. Если бы вы могли генерировать getters/seters во время выполнения ... в любом случае вы не можете называть их в своем коде, потому что они еще не существовали. У вас будет ошибка времени компиляции.

Возможно, вы можете использовать какой-либо источник источника IDE. Как в Eclipse: Source menu -> generate getters/seters.

+1

На самом деле, с помощью ITD вы можете добавлять поведение к интерфейсам и абстрактным классам, так как они будут действовать как Mixins. Вы по-прежнему не сможете создавать интерфейсы, но каждый класс, реализующий его, будет иметь поведение, добавленное к интерфейсам. – EdMelo

4

Отъезд Spring Roo, который генерирует геттеры и сеттеры, генерируя AspectJ ITD.

Не самая элегантная вещь, но она выполняет работу без затрат времени на другие вещи, такие как lambok.

+0

Ломбок не имеет накладных расходов. –