1

Java では、次のように、複数のメソッド ハンドルをそれぞれのパラメーターと組み合わせることができます。

foo( a, bar( 2, b ) )

.. MethodHandles.collectArguments()を使用して。

取得したメソッド ハンドルは、次のように呼び出すことができます。

myHandle.invokeExact( 5, 6 ); // invokes foo(5, bar(2, 6))

しかし今、次のようにパラメーターをコール ツリーにディスパッチするメソッド ハンドルを取得したいと考えています。

MethodHandle myHandle = ...; // foo( *x*, bar( 2, *x* ) )
myHandle.invokeExact( 3 ); // replaces x by 3 in both locations
// this call represents 'foo(3, bar(2, 3));'

その方法について頭を悩ませることはできません。手伝って頂けますか?

4

1 に答える 1