转自:
http://www.java265.com/JavaCourse/202206/3754.html
下文是笔者编写的一篇关于Lambda表达式入门的文章,当你阅读完这篇文章后,你就可以进入Lambda的大门了,如下所示
Lambda简介
Lambda表达式: 是JDK8开始后的一种新语法形式 Lambda的功能: 简化匿名内部类写法 Lambda语法格式 (匿名内部类被重写方法的形参列表)->{ 被重写方法的方法体代码 } 注:->是语法形式,无实际意义 注意事项:Lambda只能简化函数式编程接口的匿名内部类的写法
例:
@FunctionalInterface//加上这个注解必须是函数式接口,且只有一个抽象方法 interface User{ void run(); } //简化之前的匿名内部类 User p = new User(){ @Override public void run(){ System.out.println(\"我是java265.com\"); } }; //简化之后 User p = () -> { System.out.println(\"我是java265.com\"); }; 另:也可以将其作为参数代入方法中去使用: //在原来的基础上定义一个test方法 public static void test(User p){ System.out.println(\"ttttttttt\") p.run(); } //不使用Lambda的情况下: test(p);//需要在定义匿名内部类之后,将p代入; //使用Lambda的情况: User p = () -> { System.out.println(\"我是java265.com\"); }; test(() -> { System.out.println(\"我是java265.com\"); }); //由于等号右边即是User创建的对象p,因此可以可以直接将其代入
Lambda优点: Lambda是一个匿名函数 可将Lambda表达式理解为是一段可以传递的代码
Lambda优点
//Lambda应用之前: Arrays.sort(users,new Comparator<Integer>(){ @Override public int compare(Integer o1,Integer o2){ return o2 -o1; } }); //Lambda应用之后: Arrays.sort(users,(Integer o1,Integer o2) -> { return o2 -o1; });
Lambda表达式省略原则
Arrays.sort(users,(Integer o1,Integer o2) -> { return o2 -o1; }); //省略参数类型之后 Arrays.sort(users,( o1, o2){ return o2 -o1; }); 当只有一个参数,参数类型可以省略,同时()也可以省略 //简单引用一个单个参数的例子,不需要了解其具体含义 btn.addActionListener((ActionEvent e) -> { System.out.println(\"示例分享\"); }); //简化之后: btn.addActionListener( e -> { System.out.println(\"示例分享\"); }); 当Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号 //参照上一条规则的例子 btn.addActionListener( e -> { System.out.println(\"示例分享\"); }); //简化之后: btn.addActionListener( e -> System.out.println(\"示例分享\") ); 当Lambda表达式的方法体代码只有一行代码。可以省略大括号不写 当这行代码是return语句,必须省略return不写,同时也必须省略\";\"不写 //参照第一条规则的代码 Arrays.sort(users,(Integer o1,Integer o2) -> { return o2 -o1; }); //简化之后: Arrays.sort(users,( o1, o2)-> o2 -o1);
来源:https://www.cnblogs.com/java265/p/16388775.html
本站部分图文来源于网络,如有侵权请联系删除。