lambda(替代匿名类)

来源:互联网 发布:excel拆分单元格数据 编辑:程序博客网 时间:2024/05/16 14:55

jdk1.8匿名内部类之前的写法

public class Lambda {    public static void main(String[] args) {        //匿名内部类        School school = new School() {            @Override            public void run(String jdk) {                System.out.println("这是jdk"+jdk+"的特性");            }        };        school.run("彭守星");    }}interface School{    public void run(String name);}

jdk1.8的写法(lambda表达式)

package com.test.new8;public class Lambda {    public static void main(String[] args) {        School school=(String name,int age) -> {return name;};         String run = school.run("11", 16);        System.out.println(run);    }}@FunctionalInterfaceinterface School{    public String run(String name,int age);}

lambda注意事项

  • Lambda表达式只能针对函数式接口使用(函数式接口:接口里只有一个抽象方法),使用注解(@FunctionalInterface)可以强制接口是函数式接口。
  • Lambda 表达式由三个部分组成:第一部分为一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数;第二部分为一个箭头符号:->;第三部为方法体,可以是表达式和代码块。
(parameters) -> expression ##一条语句的时候(parameters) -> { statements; } ##多条语句的时候,需要return返回值的时候() -> { statements; } ##没有参数
原创粉丝点击