web-dev-qa-db-ja.com

javaのリフレクションを使用してメソッド参照に置き換えることができます

私はintellijにこのコードを持っています:

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

また、「method.isAnnotationPresent(annotation)」はメソッド参照で置き換えることができ、引数があるため、その方法がわからないことをコンパイラーが教えてくれました。

誰かがそれを作る方法を知っていますか?

8
Motomine

以下に示すように、コードを置き換えてメソッドリファレンスを使用することができます( ここ を参照)。

_return collection.stream().anyMatch(method::isAnnotationPresent);
_

基本的に、あなたはisAnnotationPresent()methoddefinitionラムダ式[述語 を受け入れるanyMatchメソッドの)とストリームからの値anyMatchメソッドの引数として自動的に渡されます。

15
developer