問題タブ [methodhandle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
97 参照

java - Java メソッドハンドル; 複数の場所でパラメーターを使用する

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

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

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

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

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

0 投票する
5 に答える
1308 参照

java - MethodHandle を使用して最も具体的なオーバーロードされたメソッドを見つける

特定のタイプ (クラス/インターフェース) 内に 3 つのメソッドがあるとします。

またはリフレクションを使用しMethodHandleて、型が実行時にのみ知られているオブジェクトの最も具体的なオーバーロードされたメソッドを見つけたいと思います。つまり、実行時にJLS 15.12を実行したいと考えています。

たとえば、上記の 3 つのメソッドを含む上記のタイプのメソッドに次のものがあるとします。

次に、概念的には選択されたいと思いfoo(Number number)ますが、API はメソッドのみを検索し、他にはfoo(Long)何も検索しないため、上記は例外をスローします。ここでの使用法Longは単なる例であることに注意してください。オブジェクトの型は、実際には何でもかまいません。文字列、MyBar、整数、...などなど。

MethodHandle API には、JLS 15.12 に従ってコンパイラが行うのと同じ種類の解決を実行時に自動的に実行するものがありますか?