有没有办法在Consumer表达式上访问方法的注释?
public void <T> addListener(Consumer<T> consumer)
{
consumer.getClass().getAnnotation(Handler.class); // Like this
}
@Handler
public void myListener(Integer x) {
}
addListener<Integer>(this::myListener);
答案 0 :(得分:5)
您获得的不是具有@Handler
注释方法的班级实例。这应该是显而易见的 - 该课程甚至不实施Consumer
。您可以获得Consumer
accept
方法委派到myListener()
的临时实施。{1}}因此,你的问题的答案是&#34; no&#34;纯粹是出于概念上的理由。