leviothan
@leviothan

Java. Как перехватить аргумент при вызове метода?

Есть синглтон объект из стороннего кода, нужно перехватывать аргумент при вызове его метода.
Либо как альтернативный вариант, переопределить метод в этом объекте.
Вообще есть ли такая возможность?
  • Вопрос задан
  • 575 просмотров
Пригласить эксперта
Ответы на вопрос 3
@nirvimel
Случай у вас довольно тяжелый, но не стоит забывать, что рефлексия способна на чудеса.

P.S. На python, этот (антипаттерн) называется monkey patching.
Ответ написан
@bromzh
Drugs-driven development
Если у тебя используется JavaEE, то у EJB-бинов можно перехватывать вызов методов через аннотацию, в которой указываешь на класс-перехватчик. Подробнее тут, например.
Ответ написан
Комментировать
EugeneP2
@EugeneP2
Java Dev
Если методы синглтона вызываете вы, то можно создать дублирующий класс, который будет повторять интерфейс синглтона и переадресовывать ему вызовы + логировать передаваемые параметры.

Для переопределения методов, можно было бы воспользоваться библиотекой CGLIB, которая может создать прокси класса, но так как это синглтон, то скорее всего это финальный класс без публичного конструктор, джава не разрешит такое переопределение.

В общем никак.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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