Agu*_*rez 1 java lambda java-8
有没有办法在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);
Run Code Online (Sandbox Code Playgroud)
你得到的不是具有@Handler-annotated方法的类的实例.这应该是显而易见的 - 该类甚至没有实现Consumer.你得到的一个特设的实现Consumer,其accept方法委托给myListener().因此,从纯粹的概念角度来看,你的问题的答案是"不".