У меня есть статический класс, в котором есть несколько методов с разными именами, но в остальном одна и та же сигнатура, например ::
protected static MyResponse [validationMethodName] (MyObject target, MyStatus failStatus) throws Exception {...}
Я бы хотел, чтобы эти конкретные методы выполняли некоторый код при вводе, например
target.checkCache(validationMethodName);
target.doOtherStuff();
без дублирования этого кода в каждом методе.
Я изучаю следующие методы и мне интересно, какие из них возможны / лучше, или есть лучший способ:
- использовать прокси для содержащего статического класса и добавить нужный код
через InvocationHandler
- расширить класс java.lang.reflect.method с помощью специального invoke ()
- просто продублируйте код в каждом методе с помощью некоторого начального вызова methodInit (args)
Я готов использовать в ядре все, что доступно через Java10