Java 8:获取消费者<! - ? - >底层函数注释

时间:2014-09-06 17:01:04

标签: 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);

1 个答案:

答案 0 :(得分:5)

您获得的不是具有@Handler注释方法的班级实例。这应该是显而易见的 - 该课程甚至不实施Consumer。您可以获得Consumer accept方法委派myListener()的临时实施。{1}}因此,你的问题的答案是&#34; no&#34;纯粹是出于概念上的理由。