一般的な質問は次のとおりです。
- 構文を使用する場合、関数型インターフェイス
object::aMethod
などの型に変換できますか?MethodHandle
- いいえの場合、可能であればJava 8でメソッド参照を間接的に呼び出すにはどうすればよいですか?
例として、次のようにしたいとしますMethodRefRunner
。
class MethodRefRunner {
static void execute(Object target, WHATTYPE mref, Object... args) {
mref.apply(args);
}
}
また、次のように使用できます。MethodRefRunner.execute(o, o::someMethod, someParam)
上記のスニペットでWHATTYPE
は、 のオプションの 1 つjava.util.function.Function
が非常に限定的です。この回答が言及しているように、バージョン b75 より前では、java.util.function.Block
が利用可能であり、便利な場合があります。
一方でWHATTYPE
、何らかの形で ? に変換される可能性はありjava.lang.invoke.MethodHandle
ますか?
Java の専門家への注意: 必要に応じて質問のタイトルを変更してください。