JDK8 新特性

Lambda

JDK1.8 最大变化的就是引入了 Lambda 了。有关 Lambda 的格式用法:

https://docs.oracle.com/javase/tutorial/java/javaO/lambdaexpressions.html#syntax

官方使用文档:

https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

可以看到官方对 Lambda 的期望是解决一些匿名简单(通常只包含一个方法)的类初始化,这种只有一个抽象方法的接口也被称为 functional interface 。文档中也给我们提供了一些常用场景。

printPersons(
    roster,
    new CheckPerson() {
        public boolean test(Person p) {
            return p.getGender() == Person.Sex.MALE
                && p.getAge() >= 18
                && p.getAge() <= 25;
        }
    }
);

使用lambda将匿名内部类 CheckPersion 简化:

printPersons(
    roster,
    (Person p) -> p.getGender() == Person.Sex.MALE
        && p.getAge() >= 18
        && p.getAge() <= 25
);

你可能感兴趣的:(Java技术)