Может быть заменен ссылкой на метод с использованием отражения в java
У меня есть этот код в intellij:
return collection.stream().anyMatch(annotation ->
method.isAnnotationPresent(annotation));
И компилятор говорит мне, что " метод.isAnnotationPresent (annotation) " можно заменить ссылкой на метод, и я не могу понять, как это сделать, потому что у него есть аргумент.
Кто-нибудь знает, как это сделать?
1 ответ:
Вы можете заменить свой код, чтобы использовать ссылку на метод (смотрите здесь), как показано ниже:
return collection.stream().anyMatch(method::isAnnotationPresent);
В основном, вы предоставляете
isAnnotationPresent()
Способ определение к лямбда-выражению (методаanyMatch
, который принимает для предикат), и значение из потока будет автоматически передано в качестве аргумента методуanyMatch
.