ラムダ式を学習するとき、ラムダ式を使用するには関数型インターフェースを作成する必要があることを知っています。ラムダ式を使用するたびに、手動でインターフェースを作成する必要があります。非常に面倒ではありませんか? 4つの組み込みコア機能インターフェース。
1.コンシューマー:コンシューマーインターフェイス、void accept(T t)
コンシューマーインターフェイスは、入力パラメーターを受け入れ、戻り値を返さない操作を表します。例は次のとおりです。
public static void main(String[] args) {
Consumer<String> consumer = (name)-> System.out.println("我叫"+name);
consumer.accept("张三");
}
2.サプライヤー:供給インターフェース、T get()
供給パラメーターはパラメーターを表さず、結果を返します
SimpleDateFormat dateFormat = new SimpleDateFormat("yy-MM-dd hh:mm:ss");
Supplier supplier = Date::new;
System.out.println("当前时间是:"+ dateFormat.format(supplier.get()));
演算結果:
3. Function <T、R>:機能インターフェース、R apply(T t)
1つの入力パラメーターを受け取り、結果を返します
Function<Double,String> function = (num) -> "消费"+num+"元";
System.out.println(function.apply(32.1));;
4.述語:アサーションインターフェイス、ブールテスト(T t)
パラメータを渡し、このパラメータに従って、ブール型を返します。
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
System.out.println("输出所有偶数");
eval(list,(n)->n%2 == 0);
}
public static void eval(List<Integer> list, Predicate<Integer> predicate) {
for(Integer n: list) {
if(predicate.test(n)) {
System.out.println(n + " ");
}
}
}
5.その他のインターフェース
上記の機能インターフェイスに加えて、Javaには他のいくつかの機能インターフェイスも組み込まれています。一般的に、あなたはそれを理解する必要があるだけであり、あなたは通常それをあまり使用しません。