目录
1) // 通过实现类 创建 LambdaInterface 类型的实例化对象
2) //通过匿名内部类的方式创建 LambdaInterface 类型对象
3)通过lambda表达式创建接口的实例对象 要求:接口中只能有一个抽象的方法
java8的新特性,本质是匿名函数
LambdaInterface lambdaInterface = new LambdaClass();
lambdaInterface.method1();
LambdaInterface lambdaInterface1 = new LambdaInterface() {
@Override
public void method1() {
System.out.println("通过匿名内部类创建的对象");
}
};
lambdaInterface1.method1();
方法没有返回值,没有参数
LambdaInterface lambdaInterface = ()->{
System.out.println("通过lambda表达式创建的对象");
};
简化lambda写法时 如果参数列表中没有参数 小括号是不能省略的
方法没有返回值,有一个参数
LambdaInterface lambdaInterface = (int a)->{
System.out.println("a = " + a);
};
LambdaInterface lambdaInterface = a->System.out.println("a = " + a);
重写方法时 可以省略参数的类型
参数列表中只有一个参数 可以省略小括号
如果重写的方法中只有一条语句 大括号可以省略
方法没有返回值,有多个参数
LambdaInterface lambdaInterface = (a,b)->{
System.out.println("a = " + a);
System.out.println("b = " + b);
};
含有多个参数时 小括号不能省略
方法有返回值,没有参数
LambdaInterface lambdaInterface = ()->{
return 20;
};
LambdaInterface lambdaInterface = ()-> 20;
如果有返回值并且方法体中只有一条语句 大括号可以省略 return关键词也可以省略
方法有返回值,有一个参数
LambdaInterface lambdaInterface = (a)->{
return a;
};
LambdaInterface lambdaInterface = a -> a;
方法没有返回值,有多个参数
LambdaInterface lambdaInterface = (a,b)-> {
return a+b;
};
LambdaInterface lambdaInterface = (a,b)-> a+b;
方法引用在JDK 8中使用方式相当灵活,有以下几种形式:
1. instanceName::methodName 对象::方法名
2. ClassName::staticMethodName 类名::静态方法
3. ClassName::methodName 类名::普通方法
4. ClassName::new 类名::new 调用的构造器
5. TypeName[]::new String[]::new 调用数组的构造器