- Я определил аннотацию маркера
- Я определил @Aspect с поведением perthis(), которое перехватывает все методы установки
-
Я добавил это в @Aspect, чтобы привязать поведение к любым объектам, отмеченным @MyInterface:
Код: Выделить всё
@DeclareParents(value = "@MyInterface *", defaultImpl = MyInterfaceImpl.class) private MyObject myObject = null; - Интерфейс имеет этот метод:
Этот метод реализован в MyInterfaceImpl
Код: Выделить всё
Map getMagicStuff();
Код: Выделить всё
((MyObject) obj).getMagicStuff();
Код: Выделить всё
someObject.getMagicStuff();
В идеальном случае мире, я бы получил поведение, подобное Lomboks @Getter, но для этого требуется поддержка IntelliJ, а также работа с деревом AST и тому подобное.
Я знаю, что могу определить метод по умолчанию в интерфейсе, но у него не будет доступа к реализации.
Как это сделать?
Подробнее здесь: https://stackoverflow.com/questions/781 ... ss-cleanly
Мобильная версия