美文网首页
Java 10新特性——局部变量类型推导

Java 10新特性——局部变量类型推导

作者: redexpress | 来源:发表于2018-04-09 22:33 被阅读23次

Java 10 最明显的新特性是局部变量类型推导。

把与Java 7的写法比较下。

// Java 10
var list = new ArrayList<String>();

// Java 7
ArrayList<String> list = new ArrayList<>();

下面把与Java 8、java 5的写法都比较下,回顾一下Java的演化。

import java.util.*;

public class Java10Demo {
    public static void main(String[] args) {
        var demo = new Java10Demo();
        demo.demoJEP286();
    }

    void demoJEP286() {
        demoJava10();
        demoJava8();
        demoJava5();
    }

    void demoJava10() {
        var list = new ArrayList<Person>() {{
            add(new Person("yang", Sex.MALE));
            add(new Person("gao", Sex.MALE));
            add(new Person("feng", Sex.FEMALE));
        }};
        list.stream().filter(p -> p.sex == Sex.MALE).forEach(System.out::println);
    }

    void demoJava8() {
        List<Person> list = new ArrayList<>() {{
            add(new Person("yang", Sex.MALE));
            add(new Person("gao", Sex.MALE));
            add(new Person("feng", Sex.FEMALE));
        }};
        list.stream().filter(p -> p.sex == Sex.MALE).forEach(System.out::println);
    }

    void demoJava5() {
        List<Person> list = new ArrayList<Person>();
        list.add(new Person("yang", Sex.MALE));
        list.add(new Person("gao", Sex.MALE));
        list.add(new Person("feng", Sex.FEMALE));
        for (Person person : list) {
            if (person.sex == Sex.MALE) {
                System.out.println(person);
            }
        }
    }
}

enum Sex {
    MALE, FEMALE
}

class Person {
    String name;
    Sex sex;

    public Person(String name, Sex sex) {
        this.name = name;
        this.sex = sex;
    }

    public String toString() {
        return "Person(" + name + ", " + sex + ")";
    }
}

相关文章

  • Java 10新特性——局部变量类型推导

    Java 10 最明显的新特性是局部变量类型推导。 把与Java 7的写法比较下。 下面把与Java 8、java...

  • var 是 Java 开发的好朋友啊!

    简评:Java var != JavaScript var。 Java 10 中引入了新的语法用于局部变量类型推断...

  • var 还是 Java 开发的好朋友呀!

    简评:Java var != JavaScript var。 Java 10 中引入了新的语法用于局部变量类型推断...

  • Item 1Understand template type d

    引子 模板类型推导是Modern C++特性auto的基础,但模板类型推导和auto类型推导有一些区别,具体看正文...

  • Kotlin (一)基础

    基础语法 1.1 增强类型推导 类型推导是Kotlin在java语言上的增强。编译器可以在不显示声明情况推导出类型...

  • C++14新特性的所有知识点全在这儿啦!

    前面程序喵介绍过C++11的新特性,在这里(),这篇文章介绍下C++14的新特性。 函数返回值类型推导 C++14...

  • JavaSE 10 新特性

    简介 新特性 局部变量类型推断 强类型编程语言有很多优点,包括在编译时发现类型错误,但是它们也引入了大量的样板代码...

  • Java11的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java15的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

  • Java12的新特性

    Java语言特性系列 Java5的新特性 Java6的新特性 Java7的新特性 Java8的新特性 Java9的...

网友评论

      本文标题:Java 10新特性——局部变量类型推导

      本文链接:https://www.haomeiwen.com/subject/dvuwhftx.html