問題タブ [method-reference]

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 に答える
1247 参照

java - Java 8 で、パラメーターをとらずに void を返すメソッドへのメソッド参照を作成するにはどうすればよいですか?

このシグネチャを持つメソッドがたくさんあります:

(つまり、それらは void を返し、パラメーターを取りません) そして、次のようなことを行うことでリストにデータを入力できるようにしたいと考えています。

しかし、この署名をサポートする組み込み@FunctionalInterfaceのパッケージが見つかりません。java.util.functionこのために自分で作成する必要があります@FunctionalInterfaceか?

0 投票する
7 に答える
13968 参照

java - java 8で「特定のタイプの任意のオブジェクト」とはどういう意味ですか?

Java 8 には「メソッド参照」機能があります。その種類の 1 つは、「特定の型の任意のオブジェクトのインスタンス メソッドへの参照」です。

http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html#type

誰かがそのコンテキストで「特定のタイプの任意のオブジェクト」が何を意味するのか説明できますか?

0 投票する
3 に答える
13663 参照

java - メソッド参照のキャッシュは Java 8 で良いアイデアですか?

次のようなコードがあるとします。

hotFunctionが非常に頻繁に呼び出されるとします。をキャッシュすることをお勧めしますthis::func。おそらく次のようになります。

Java メソッド参照に関する私の理解では、メソッド参照が使用されると、仮想マシンは匿名クラスのオブジェクトを作成します。したがって、参照をキャッシュすると、最初のアプローチでは関数呼び出しごとにオブジェクトが作成されるのに対し、そのオブジェクトは一度だけ作成されます。これは正しいです?

コード内のホットな位置に表示されるメソッド参照をキャッシュする必要がありますか、それとも VM がこれを最適化してキャッシュを不要にすることができますか? これについての一般的なベスト プラクティスはありますか、それとも、そのようなキャッシングが役立つかどうかにかかわらず、この非常に VM 実装に固有のものですか?

0 投票する
3 に答える
965 参照

java - Java 8: メソッド参照で Operator-Function-Object を取得する

標準演算子 (+、-、​​<、>、...) のメソッド参照を取得するために、Java 8 に可能性があるかどうか疑問に思いました。

Foo::+Foo がそれを取得できる定義された場所であるような場所に取得したい。Java ではメソッド名に特殊文字を使用できないため、可能ではないと思います。

上記の方法が存在しない場合: のように標準演算子が定義されている場所はありFoo::plusますか?

これを lambda( (x, y) -> x + y) として定義する可能性があることは知っていますが、私の意見では、Haskell で可能なように、演算子へのメソッド参照を使用すると、場合によってはより表現力豊かになる可能性があります。

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

java-8 - メソッド参照でメソッド オブジェクトを取得する

java.lang.reflect.MethodJava 8 の新しいメソッド参照機能を使用してのインスタンスを取得することはできますか?

そうすれば、コンパイル時のチェックが行われ、リファクタリングも簡単になります。また、例外をキャッチする必要もありません (結局のところ、スローされるべきではありません)。

0 投票する
2 に答える
90803 参照

java - パラメータとしてのJava 8パスメソッド

現在、Java 8 のラムダ式とメソッド参照に取り組んでいます。

引数も戻り値もないメソッドを引数として別のメソッドに渡したいです。これが私がやっている方法です:

java.util.functionなどの一連の定義済み機能インターフェイスがあることは知っていFunction<T,R>ますが、引数がなく、結果を生成しないものは見つかりませんでした。