Java多线程02:Lambda表达式

Lambda表达式可以避免匿名内部类定义过多,让代码看上去很简洁,其实质属于函数式编程的概念

函数式接口

任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口,如Runnable接口

对于函数式接口,可以通过Lambda表达式来实现

实现函数式接口的方式

public class Main {

    /**
     * 2、静态内部类
     */
    static class StaticClass implements Like {

        @Override
        public void like() {
            System.out.println("这是静态内部类");
        }
    }

    public static void main(String[] args) {

        /**
         * 3、局部内部类
         */
        class LocalClass implements Like{

            @Override
            public void like() {
                System.out.println("这是局部内部类");
            }
        }

        /**
         * 实例化普通接口实现类
         */
        SimpleClass simpleClass = new SimpleClass();
        simpleClass.like();

        /**
         * 实例化静态内部类
         */
        StaticClass staticClass = new StaticClass();
        staticClass.like();

        /**
         * 实例化局部内部类
         */
        LocalClass localClass = new LocalClass();
        localClass.like();

        /**
         * 4、匿名内部类
         */
        Like anonymousClass = new Like() {

            @Override
            public void like() {
                System.out.println("这是匿名内部类");
            }
        };

        anonymousClass.like();

        /**
         * 5、Lambda表达式
         */
        Like lambda = () -> {
            System.out.println("这是Lambda表达式");
        };
        
        lambda.like();
    }
}

/**
 * 定义一个函数式接口
 */
interface Like {
    void like();
}

/**
 * 1、普通接口实现类
 */
class SimpleClass implements Like {

    @Override
    public void like() {
        System.out.println("这是普通接口实现类");
    }
}
posted @ 2021-09-14 15:34  振袖秋枫问红叶  阅读(119)  评论(0)    收藏  举报