要件: 加算、減算、乗算、除算を使用できるインターフェイスを定義する
ステージ 2: メソッドを記述し、操作する必要があるデータとインターフェイスを入力します。
1. カスタムラムダインターフェースプロセス
-
要件:加算、減算、乗算、除算を使用できるインターフェイスを定義する
ステージ 1: 機能インターフェイスを定義する
-
このインターフェイスには@Functionallinterface とマークを付ける必要があります。そうしないと、チーム メンバーが他のメソッドをインターフェイスに追加した場合に失敗する可能性があります。
package com.learning.javalearning.lambda.chapter3;
/**
* 模拟四则运算
*
* @param <R> 表示 Return 对象
* @param <T> 表示 入参
*/
@FunctionalInterface
public interface OperFunction<R,T> {
R operation(T t1,T t2);
}
ステージ 2: メソッドを記述し、操作する必要があるデータとインターフェイスを入力します。
- メソッドを呼び出すときは、データとラムダ式を渡してデータを操作します。
package com.learning.javalearning.lambda.chapter3;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class Main {
public static void main(String[] args) {
int a = 20;
int b = 5;
log.info("{} + {} = {}",a,b,operation(a,b,(x,y)->x+y));
log.info("{} - {} = {}",a,b,operation(a,b,(x,y)->x-y));
log.info("{} X {} = {}",a,b,operation(a,b,(x,y)->x*y));
log.info("{} / {} = {}",a,b,operation(a,b,(x,y)->x/y));
}
public static Integer operation(Integer x, Integer y, OperFunction<Integer, Integer> of) {
return of.operation(x, y);
}
}