===============
== ffff65535 ==
===============
十六个一[1111111111111111]

lambda表达式

lambda

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。

函数式接口可以被隐式转换为 lambda 表达式。

/**
 * 定义一个函数式接口
 */
interface ILike {
    abstract void lambda();
}

/**
 * 1.函数式接口实现类
 * 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
 */
class Like1 implements ILike {

    @Override
    public void lambda() {
        System.out.println("i like lambda1");
    }
}

/**
 * 推导lambda方法
 */
public class TestLambda {
    public static void main(String[] args) {
        ILike like1 = new Like1();
        like1.lambda();

        ILike like2 = new Like2();
        like2.lambda();

        /**
         * 3.局部内部类
         */
        class Like3 implements ILike {
            @Override
            public void lambda() {
                System.out.println("i like lambda3");
            }
        }
        ILike like3 = new Like3();
        like3.lambda();

        ILike lik4 = new ILike() {
            /**
             * 4.匿名内部类
             */
            @Override
            public void lambda() {
                System.out.println("i like lambda4");
            }
        };
        lik4.lambda();

        /**
         * lambda简化
         * 必须是函数式接口
         */
        ILike like5 = () -> {
            System.out.println("i like lambda5");
        };
        like5.lambda();
        /**
         * 只有一行代码可以继续简化,多行不能简化
         */
        ILike like6 = () -> System.out.println("i like lambda6");
        like6.lambda();
    }

    /**
     * 2.定义一个静态内部类
     */
    static class Like2 implements ILike {
        @Override
        public void lambda() {
            System.out.println("i like lambda2");
        }
    }
}

参考资料:

https://www.runoob.com/java/java8-functional-interfaces.html

https://www.bilibili.com/video/BV1V4411p7EF?p=10