問題タブ [functional-interface]

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

lambda - ラムダ式は実際に内部でJavaインターフェースを実装していますか?

sort()以下は、メソッドのパラメーターとしてラムダ式を使用する Java プログラムです。

Eclipse を使用すると、メソッドについて言うとF3sort()実際には Java 7 バージョンで使用されているのと同じsort()メソッド シグネチャ (定義) に制御が移ります。

私のコードでは、メソッドの 2 番目のパラメーターの構文は、内部でsort()実装することと実際に同等interface Comparator<T>ですか? 何かのようなもの

0 投票する
8 に答える
112033 参照

java - コンストラクターで引数を持つ Java 8 サプライヤー

サプライヤが引数なしのコンストラクタのみをサポートするのはなぜですか?

デフォルトのコンストラクターが存在する場合は、次のようにできます。

しかし、唯一のコンストラクターが文字列を取る場合、私はこれをしなければなりません:

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

java-8 - @FunctionalInterface を SAM 抽象基本クラスに適用できないのはなぜですか

私はキャメルを学び始めたばかりで、最初に目にするのは

私は(合理的にIMHO)置き換えようとしています

しかし、それは有効ではありません。

掘り下げていくと、ラムダが機能インターフェースに適用されることを発見しましたが (インターフェースが適格である場合、これは暗示されます)、 @FunctionalInterface アノテーションはインターフェースにのみ適用できる (十分に公平です) こと、そして私が知る限り、抽象クラスに相当する注釈はありません。もちろん、RouteBuilder は抽象クラスです。

ラムダがインターフェイスに制限されているのはなぜですか?

「機能クラス」を安全でない/予測不可能/不合理にするインターフェイスとクラスの本質的な違いは何ですか?

抽象メソッドを公開する必要があるなどの修飾子があったかどうかは理解できましたが、上記が不合理である理由を説明するのに途方に暮れています。

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

java - 関数を使用した Java 8 ラムダ引数として

Lambda Java 8 (Oracle JDK) の興味深いコンパイル エラー

メソッド呼び出しがあります:

これは私が呼び出そうとしているメソッドです:

私が得るコンパイルエラーは次のとおりです。

奇妙なことに、これはコンパイルされます

コンパイラがラムダを Function に合成できないのはなぜですか?

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

java - Java 8 ラムダ実行

Java 8でこのようなことを行うにはどうすればよいですか?

現在、次のエラーが表示されます。

この式の対象の型は関数型インターフェイスでなければなりません

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

lambda - 互換性のない引数を使用した Java 8 Lambda の翻訳

出力:

これは 1.8.0_45.jdk で正常に実行されます。Container#add はどのように ObjIntConsumer#accept に変換されますか?

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

java - 関数型インターフェースの振る舞いとメソッド参照

変数に属するメソッドの参照が破棄されるとどうなりますか?

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

java - ラムダを操作するために機能的なインターフェイスが必要なのはなぜですか?

この質問はすでにどこかにあると思いますが、見つけることができませんでした。

ラムダを操作するために機能的なインターフェイスが必要な理由がわかりません。次の例を検討してください。

これは問題なく動作しますが、コメント行のコメントを外すと、動作しません。なんで?私の理解では、コンパイラは2つのメソッドを区別できるはずです.2つのメソッドは異なる入力パラメータを持っているからです. 機能的なインターフェイスが必要で、コードを爆破するのはなぜですか?

編集:リンクされた重複は、異なるメソッドパラメーターについて尋ねているため、私の質問に答えませんでした。しかし、助けてくれたみんなに感謝します! :)

EDIT2:申し訳ありませんが、私は明らかにネイティブスピーカーではありませんが、正確には:

私が求めているのは、議論についてだけです。メソッド名は問題ではありませんが、各メソッドは異なる引数の一意の順序をとります。そのため、Oracle は、「Lambda-Interface」ごとに単一のメソッドを可能にする代わりに、この機能を実装できたはずです。