Lambda表达式
函数式接口:任何接口若只包含一个抽象方法,便是函数式接口
对于函数式接口,我们便可以通过Lambda表达式来创建接口对象
public class TestLambda{
public static void main(String[] args) {
ILike like = new Like();
like.lambda();
}
}
//定义一个函数式接口
interface ILike{
void lambda();
}
//实现类
class Like implements ILike{
@Override
public void lambda() {
System.out.println("I Like Lambda");
}
}
优化---->将类放到内部(静态内部类)
public class TestLambda{
static class Like2 implements ILike{
@Override
public void lambda() {
System.out.println("I Like Lambda2");
}
}
public static void main(String[] args) {
ILike like = new Like2();
like.lambda();
}
}
//定义一个函数式接口
interface ILike{
void lambda();
}
优化—>将其放到方法里(局部内部类)
public class TestLambda{
public static void main(String[] args) {
//局部内部类
class Like3 implements ILike{
@Override
public void lambda() {
System.out.println("I Like Lambda3");
}
}
ILike like = new Like3();
like.lambda();
}
}
//定义一个函数式接口
interface ILike{
void lambda();
}
简化—>匿名内部类
public class TestLambda{
public static void main(String[] args) {
//匿名内部类,没有类的名称,必须借助接口或者父类
ILike like = new ILike() {
@Override
public void lambda(){
System.out.println("I Like Lambda4");
}
};
like.lambda();
}
}
//定义一个函数式接口
interface ILike{
void lambda();
}
简化—>用Lambda简化
public class TestLambda{
public static void main(String[] args) {
ILike like = () -> {
System.out.println("I Like Lambda5");
};
like.lambda();
}
}
//定义一个函数式接口
interface ILike{
void lambda();
}