2
ラムダコールはどのようにインターフェイスと相互作用しますか?
以下に示すコードスニペットは機能します。ただし、なぜ機能するのかはわかりません。ラムダ関数が情報をインターフェイスに渡す方法のロジックを完全には理解していません。 制御はどこに渡されますか?コンパイラーnは、ループ内のそれぞれとmessage作成されたものをどのように理解していますか? このコードはコンパイルされ、期待される結果が得られます。どうすればいいのか分かりません。 import java.util.ArrayList; import java.util.List; public class TesterClass { public static void main(String[] args) { List<String> names = new ArrayList<>(); names.add("Akira"); names.add("Jacky"); names.add("Sarah"); names.add("Wolf"); names.forEach((n) -> { SayHello hello = (message) -> System.out.println("Hello " + message); hello.speak(n); }); } interface SayHello { void speak(String message); } }