lambda表达式
- 作用:
- 避免内部类定义过多
- 使代码看起来更加的简洁
- 去掉了一堆每有意义的代码,只留下核心的逻辑
- 代码实现
package com.gaopeng.lambda;
public class Demo01 {
//通过一个类实现接口
static class Lam2 implements Test{
public void test(){
System.out.println("Lam2实现接口,被调用");
}
}
public static void main(String[] args) {
//创建Lam对象,操作其中的方法---第一种方法
new Lam().test();
//第二种方法静态内部类
new Lam2().test();
//第三种方法局部内部类
class Lam3 implements Test{
public void test(){
System.out.println("Lam3实现接口,被调用");
}
}
new Lam3().test();
//第四种方法:匿名内部类,没有类的名称,必须借助接口或者父类实现,相当于直接new了一个接口省去了实现接口的过程
new Test() {
@Override
public void test() {
System.out.println("lam4实现接口,被调用");
}
}.test();
//第五种方法:lambda表达式实现,这里是需要指定类型的,不然代码不成立
Test t = () -> {
System.out.println("lam5实现接口,被调用");
};
t.test();
}
}
//创建一个接口
interface Test{
public abstract void test();
}
//通过一个类实现接口
class Lam implements Test{
public void test(){
System.out.println("Lam实现接口,被调用");
}
}
- 简化lambda表达式
package com.gaopeng.lambda;
public class Demo02 {
public static void main(String[] args) {
//lambda表达式简化
Test1 t1=(int a,int b)->{
System.out.println("传递参数");
};
//简化一
Test1 t2=(a,b)->{
System.out.println("简化参数类型");
};
//简化二
Test1 t3=(a,b)->System.out.println("简化花括号,只能有一行代码才能简化为一行");
//简化三
Test2 t4=a->System.out.println("简化括号,只能传递一个参数");
t1.test(1,1);
t2.test(2,2);
t3.test(3,3);
t4.test(1);
}
}
//创建一个接口
interface Test1{
public abstract void test(int a,int b);
}
//创建一个接口
interface Test2{
public abstract void test(int a);
}
Java基础-lambda表达式推导