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

Can be replaced with method reference using reflection in java

我在 intellij 中有这段代码:

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

编译器告诉我 "method.isAnnotationPresent(annotation)" 可以用方法引用替换,但我不知道该怎么做,因为它有一个参数。

有人知道怎么做吗?

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

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

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