一般的な質問は次のとおりです。
- 構文を使用する場合、関数型インターフェイス
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 の専門家への注意: 必要に応じて質問のタイトルを変更してください。