ジガー・ナイク:
私はちょうど別のユースケースを理解するための機能インタフェースを記述しようとしていました。
私が書いた以下のコードを見て、私はラムダ式を使用して異なる実装を持つことができることを理解しています。これとは別に缶誰から複雑な実装を示して?
すなわち、他のデフォルトのメソッドを使用することが可能であるaddLikeOtherWay
ラムダ式では?どのように私の例ではそうならば?
なぜ私は1つの抽象メソッドとのインタフェースを持っているでしょうか?何が私のインターフェースにおける唯一の抽象メソッドを持つのユースケースでしょうか?
public class Calculator {
public static void main(String[] args) {
ICalculator i = (int a, int b) -> a + b;
System.out.println(i.add(5, 2));
i = (int a, int b) -> a + b + a;
System.out.println(i.add(5, 2));
}
}
@FunctionalInterface
interface ICalculator {
public int add(int a, int b);
default int addLikeThis(int a, int b) {
return a + b;
}
default int addLikeOtherWay(int a, int b) {
return a + b + a + b;
}
}
Sushobh Nadiger:
なぜ私は1つの抽象メソッドとのインタフェースを持っているでしょうか?何が私のインターフェースにおける唯一の抽象メソッドを持つのユースケースでしょうか?
無名関数でラムダ式の使用を容易にするために。ラムダ式は、コードの表現をすると混乱を減らします。また、コードをより読みやすくなります。これは、ラムダ式での作業私の経験をベースにしています。