ラムダ式の比較
Q: ラムダ式を比較する方法はありますか?
A: Java 言語仕様では、ラムダ式を比較する方法は定義されていませんが、実装で独自の比較メソッドを提供できます。
実装に関する考慮事項
現在、ラムダを実装する合成クラスとプログラム内のキャプチャ サイト間の 1 対 1 の関係です。したがって、同じキャプチャ サイトで同じ変数をキャプチャする 2 つのラムダ式は同じインスタンスによって表され、参照等価性を使用して比較できます。ただし、2 つのラムダ式が異なるキャプチャ サイトで同じ変数をキャプチャしている場合、またはキャプチャされていない場合は、異なるインスタンスで表される可能性があり、参照等価性を使用して比較することはできません。
Alternatives
ラムダ式を比較する必要がある場合、代替方法の 1 つはシリアル化を使用することです。シリアル化可能なラムダは、シリアル化された形式を使用して比較できます。もう 1 つの方法は、ラムダ式の代わりにメソッド参照を使用することです。メソッド参照は、同じメソッドを参照している場合、参照等価性を使用して比較できます。
人間が読める出力
現時点では人間が読める文字列を取得することはできません。ラムダ式の表現。ただし、リフレクションを使用してラムダ式が参照するメソッドの名前を抽出することは可能です。
以上がJava でラムダ式を比較できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。