Lambda表达式

 

 

 

 

 

 

/**
* Lamdab推导
*/
public class TestLamdba1 {

//3.静态内部类(写在方法外)
static class Like2 implements Ilike{
@Override
public void lamdba() {
System.out.println("I like lamdba2");
}
}

public static void main(String[] args) {
//之前的写法
Ilike like = new Like();
// like.lamdba();

//4.局部内部类(写在方法中)
class Like3 implements Ilike{
@Override
public void lamdba() {
System.out.println("I like lamdba3");
}
}

//5.匿名内部类。没有类的名字
like = new Ilike() {
@Override
public void lamdba() {
System.out.println("I like lamdba4");
}
};

//6.用Lamdba简化
like = ()->{
System.out.println("I like lamdba5");
};
like.lamdba();

}

}

//1.定义接口。只有一个方法的接口称为:函数式接口
interface Ilike{
void lamdba();
}

//2.定义实现类
class Like implements Ilike{
@Override
public void lamdba() {
System.out.println("I like lamdba");
}
}

/**
* Lamdba再简化
*/
public class TestLamdba2 {

public static void main(String[] args) {
//正常lamdba
Ilove love = (int a) -> {
System.out.println("I love you---->"+a);
};

//简化1.参数类型(多个参数时,要去掉都去掉)
Ilove love2 = (a) -> {
System.out.println("I love you---->"+a);
};

//简化2.去掉括号(适用用只有一个参数)
Ilove love3 = a -> {
System.out.println("I love you---->"+a);
};

//简化3.去掉大括号(适用于逻辑只有一行)
Ilove love4 = a -> System.out.println("I love you---->"+a);

love4.love(3);
}
}

//定义函数式接口
interface Ilove{
void love(int a);
}
posted @ 2022-04-27 17:47  花田007  阅读(26)  评论(0编辑  收藏  举报