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);
}