我自定义一个函数接口:
@FunctionalInterface
public interface HandlerFunction {
void callback();
}
然后自定义了一个方法级的注解 @Great:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented public
@interface Great {
boolean value() default true;
}
现在我给方法 A ( functionA )加上 @Great 注解,functionA 满足函数接口 HandlerFunction,再将 functionA 传到方法 B ( functionB )中去,方法 B 的参数中接收 HandlerFunction 类的方法,要如何在 functionB 中拿到 functionA 的注解 @Great 呢?代码如下:
@Greet
public void functionA() {
System.out.println("hello world");
}
public void functionB(HandlerFunction function) {
//要如何在这里拿到传入的 function 的注解呢?
function.callback();
// 回调传入的 function
}
我现在 getMethod 只能拿到一个 lambda 表达式,如 function: AppTest$lambda@970,而不是具体的 functionA。 有大佬能够指点一二吗,这个问题卡在心里很不舒服。