使用Lambda表示式處理簡單的業務

jalrs發表於2020-10-20

定義
函式式介面
一種只含有一個抽象方法宣告的介面
可以使用匿名內部類來例項化函式式介面的物件
通過Lambda表示式可以進一步簡化程式碼
語法

(paramenters) -> expression
(paramenters) -> {statements;}

步驟:
1.新建一個介面
2.新建一個Java類,繼承建立的介面,並根據業務需求定義資料型別
3.建立Java測試類,進行功能實現
例項:
1.根據學歷和年齡來確定工資
1)新建OperationInterface介面

public interface OperationInterface {
    public Integer salary (String a,Integer b);
}

2)新建OperationInterfaceImpl類,定義學歷String型別,年齡Integer型別

public class OperationInterfaceImpl implements OperationInterface{
    @Override
    public Integer salary(String a, Integer b) {
        return null;
    }
}

3)新建TestSalary類

public class TestSalary {
    public static void main(String[] args) {
        OperationInterface sal = (String a,Integer b) -> {
            if (a.equals("初中")&& b == 20) {
                return 2000;
            } else if (a.equals("高中")&& b == 20) {
                return 2200;
            } else if (a.equals("大專")&& b == 21) {
                return 3000;
            } else if (a.equals("本科")&& b == 22) {
                return 3300;
            } else {
                return 0;
            }
        };
        System.out.println(sal.salary("本科",22));
    }
}

執行結果如下
在這裡插入圖片描述

2.判斷字串是否包含字元a、字元b,是則分別返回1和0,否則,返回0
1)建立Operation介面

public interface Operation {
    public Integer operation(String a);
}

2)建立OperationIml類,繼承Operation介面

public class OperationIml implements Operation{
    @Override
    public Integer operation(String a) {
        return null;
    }
}

3)建立TestChar測試類

public class TestChar {
    public static void main(String[] args) {
        Operation opp = (String a) -> {
            if (a.contains("a")) {
                return 1;
            } else if (a.contains("b")) {
                return 0;
            } else {
                return -1;
            }
        };
        System.out.println(opp.operation("abdfe"));
    }
}

測試結果如下
在這裡插入圖片描述

3.用lambda表示式進行兩個數之間的四則運算
1)建立OperationInterface介面

public interface OperationInterface {
    public Integer operation(Integer a,Integer b);
}

2)建立OperationInterfaceImpl類,繼承OperationInterface介面

public class OperationInterfaceImpl implements OperationInterface{
    @Override
    public Integer operation(Integer a, Integer b) {
        return a+b;
    }
}

3)建立TestDemo測試類

public class TestDemo {
    public static void main(String[] args) {
        OperationInterface add = (Integer a,Integer b) -> a+b;
        OperationInterface jian = (Integer a,Integer b) -> a-b;
        OperationInterface ji = (Integer a,Integer b) -> a*b;

//        Integer sum2 = ji.operation(10,20);
//        System.out.println(sum2);

        TestDemo demo = new TestDemo();
        Integer result = demo.getResult(20, 10, add);
        System.out.println(result);

//        OperationInterface operationInterface = new OperationInterfaceImpl();
//        Integer sum = operationInterface.operation(10,10);
//        System.out.println(sum);
    }

    public Integer getResult(Integer a,Integer b,OperationInterface operationInterface) {
        return operationInterface.operation(a,b);
    }

測試結果如下
在這裡插入圖片描述

相關文章