我有一个静态类,它有许多名称不同但签名相同的方法,例如:
protected static MyResponse [validationMethodName] (MyObject target, MyStatus failStatus) throws Exception {...}
我希望这些特定方法在输入时执行一些代码,例如
target.checkCache(validationMethodName);
target.doOtherStuff();
无需在每种方法中复制此代码。
我正在研究以下技术,并想知道哪种技术可能/最好,或者是否有更好的方法:
- 为包含的静态类使用代理并通过 InvocationHandler 添加所需的代码
- 使用特殊的 invoke() 扩展 java.lang.reflect.method 类
- 只需使用一些初始 methodInit(args) 调用复制每个方法中的代码
我愿意使用通过 Java10 可用的任何核心内容