Может быть заменен ссылкой на метод с использованием отражения в java


У меня есть этот код в intellij:

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

И компилятор говорит мне, что " метод.isAnnotationPresent (annotation) " можно заменить ссылкой на метод, и я не могу понять, как это сделать, потому что у него есть аргумент.

Кто-нибудь знает, как это сделать?

1 8

1 ответ:

Вы можете заменить свой код, чтобы использовать ссылку на метод (смотрите здесь), как показано ниже:

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

В основном, вы предоставляете isAnnotationPresent() Способ определение к лямбда-выражению (метода anyMatch, который принимает для предикат), и значение из потока будет автоматически передано в качестве аргумента методу anyMatch.