[JDK 8-Lambda] 3.2 カスタム関数型プログラミングの実践

1. カスタムラムダインターフェースプロセス

要件: 加算、減算、乗算、除算を使用できるインターフェイスを定義する

ステージ 1: 機能インターフェイスを定義する

ステージ 2: メソッドを記述し、操作する必要があるデータとインターフェイスを入力します。

ステージ 3: 実行結果


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);
    }
}

ステージ 3: 実行結果

おすすめ

転載: blog.csdn.net/ladymorgana/article/details/132969704