私はJavaのインタフェースInterfaceA
があり、3つのメソッドが異なるシグネチャ(そのうち2つはデフォルト)を定義しています。ラムダ関数をパラメータとして、インタフェースを期待するメソッドに渡す
f((ArgA) -> return ArgA.write())
どのようInterfaceA
3つのメソッドを定義することを知って、このことが可能である:これは、これが使用される方法である
public void f(InterfaceA ia) {
.....
}
とユニットテストで:
別のクラスは、メソッドそうような定義しますか?
ラムダ式について読んでください。 – Eran
しました。私はまだここで何が起こっているのか分かりません。私はラムダがインターフェイスメソッドを超えていると推測することができますが、どのように?どれ?代わりに匿名のクラスを定義するのはなぜですか? – Kam
ラムダ式は、あなたの関数型インタフェース 'InterfaceA'の単一メソッドの実装を提供しています。これは、匿名クラスのインスタンスと非常によく似た動作をします。 – Eran