Lambda小结

image-20210129154613332

准备知识:函数式接口(functional interface 也叫功能性接口,其实是同一个东西)。简单来说,函数式接口是只包含一个方法的接口。比如Java标准库中的java.lang.Runnable和 java.util.Comparator都是典型的函数式接口。
java 8提供 @FunctionalInterface作为注解,这个注解是非必须的,只要接口符合函数式接口的标准(即只包含一个方法的接口),虚拟机会自动判断, 但 最好在接口上使用注解@FunctionalInterface进行声明,以免团队的其他人员错误地往接口中添加新的方法。Java中的lambda无法单独出现,它需要一个函数式接口来盛放,lambda表达式方法体其实就是函数接口的实现.

推演:

package demo.lambda;
//推导lambda
public class Testlambda {
    //静态内部类
    static class Like2 implements Ilike{
        @Override
        public void lambda() {
            System.out.println("22222");
        }
    }
    public static void main(String[] args) {
        //普通类
        Ilike like=new Like();
        like.lambda();
        //静态类
        like = new Like2();
        like.lambda();
        //局部内部类
        class Like3 implements Ilike{
            @Override
            public void lambda() {
                System.out.println("33333");
            }
        }
        like = new Like3();
        like.lambda();
        //匿名内部类
       like=new Ilike() {
            @Override
            public void lambda() {
                System.out.println("44444");
            }
        };
        like.lambda();
        //lambda
        like=()->{
            System.out.println("555555");
        };
        like.lambda();

    }
}
//接口
interface  Ilike{
    void lambda();
}
//实现类
class Like implements Ilike{
    @Override
    public void lambda() {
        System.out.println("11111");
    }
}
原文地址:https://www.cnblogs.com/xiaxiaopi/p/14345608.html