Java Lambda表达式

it2023-04-11  81

Lambda表达式

1、函数式接口

一种只含有一个抽象方法声明的接口可以使用匿名内部类来实例化函数式接口的对象通过Lambda表达式可以进一步简化代码

2、Lambda语法

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

3、Lambda表达式实例

3.1、传入学历、年龄,输出相应的工资

(1)创建接口

public interface PanduanInterface { public Integer panduan(String a,Integer b); }

(2)实现接口

public class Panduan { public static Integer panduan(String a, Integer b,PanduanInterface p) { return p.panduan(a ,b); } }

(3)测试类

public class a { public static void main(String[] args) { PanduanInterface p = (String a,Integer b) -> { if (a.equals("初中") & b==18){ return 2000; }else if (a.equals("高中") & b==20){ return 2200; }else if (a.equals("大专") & b==21){ return 2400; }else { return 3000; } }; System.out.println(Panduan.panduan("初中",18,p)); } }

3.2、加减乘除

(1)创建接口

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

(2)实现接口

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

(3)测试类

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; OperationInterface chu = (Integer a,Integer b) -> a/b; TestDemo demo = new TestDemo(); Integer result1 = demo.getResult(20,10,add); Integer result2 = demo.getResult(20,10,jian); Integer result3 = demo.getResult(20,10,ji); Integer result4 = demo.getResult(20,10,chu); System.out.println(result1); System.out.println(result2); System.out.println(result3); System.out.println(result4); } public Integer getResult(Integer a, Integer b,OperationInterface operationInterface){ return operationInterface.operation(a,b); } }
最新回复(0)