可以使用java中的反射替换方法引用

时间:2017-04-09 22:24:05

标签: java intellij-idea reflection java-8 method-reference

我在intellij中有这段代码:

 return collection.stream().anyMatch(annotation -> 
                        method.isAnnotationPresent(annotation));

编译器告诉我" method.isAnnotationPresent(annotation)"可以用方法参考替换,我无法弄清楚如何做,因为它有一个参数。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:14)

您可以替换代码以使用方法参考(查看here),如下所示:

return collection.stream().anyMatch(method::isAnnotationPresent);

基本上,您正在向 Lambda表达式isAnnotationPresent()方法提供anyMatch 方法 定义,接受Predicate),流中的值将自动作为参数传递给anyMatch方法。