Мне нужно пометить методы, чтобы они вызывали исключение RuntimeException, если они вызываются более одного раза.
Я пытаюсь применить некоторую семантику одиночного присваивания, и число параметров для моего класса слишком велико, чтобы поместить его в один конструктор, и я должен быть в состоянии сделать эти классы JAXB
также осведомленными, поэтомуобъекты должны быть изменяемыми, но я хочу применить семантику одиночного присваивания.
Я вполне уверен, что могу сделать это с Аспектами, но я действительно хотел бы иметь возможность использовать вместо этого собственный процессор аннотаций.
Я знаю, как это сделать с помощью Decorators в Python.
Как написать процессор аннотаций, который может перехватывать вызовы аннотированного метода во время выполнения, а не только во время компиляции?
Я думаю, что кое-что с динамическими прокси перехватывает вызовы методов, мне просто нужно выяснить, как интегрировать их с моим процессором аннотаций.
Динамические прокси требуют от вас использованияИнтерфейс, который является слишком громоздким, у меня есть CGLib MethodInterceptor , работающий сейчас, намного меньшетребования к тому, что перехватывается и оформляется за счет добавления зависимости.