我自定义一个函数接口:
@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。 有大佬能够指点一二吗,这个问题卡在心里很不舒服。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.