java 10 中 var关键字用法

Posted 飞宸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 10 中 var关键字用法相关的知识,希望对你有一定的参考价值。

引用:https://mp.weixin.qq.com/s/n1tcJ0CywSi0j-YycGPwxg

what

  • java10引入了局部变量折断 var用于声明局部变量。 
    var user=new ArrayList<User>();

why

  • 避免了信息冗余
  • 对齐了变量名
  • 更容易阅读

how

  • java10之前的变量声明:

    URL codefx = new URL("http://codefx.org")
    URLConnection connection = codefx.openConnection();
    Reader reader = new BufferedReader(
    new InputStreamReader(connection.getInputStream()));

     

  • java10

    var codefx = new URL("http://codefx.org");
    var connection = codefx.openConnection();
    var reader = new BufferedReader(
    new InputStreamReader(connection.getInputStream()));

     

  • 在处理 var时,编译器先是查看表达式右边部分,也就是所谓的构造器,并将它作为变量的类型,然后将该类型写入字节码当中。

attention

  • 只能用于带有构造器的局部变量,以下场景不适用 
    1. var foo; foo = "Foo";
    2. var ints = {0, 1, 2};
    3. var appendSpace = a -> a + " ";
    4. private var getFoo(){}
  • 除了局部变量,for循环是唯一可以使用 var的地方:

    var numbers = List.of("a", "b", "c");
    for (var nr : numbers)
    System.out.print(nr + " ");
    for (var i = 0; i < numbers.size(); i++)
    System.out.print(numbers.get(i) + " ");


以上是关于java 10 中 var关键字用法的主要内容,如果未能解决你的问题,请参考以下文章

Java 10 var关键字详解和示例教程

关于java中c标签foreach的用法?

关于java中c标签foreach的用法?

关于java中c标签foreach的用法?

for循环的新用法和auto关键字

用下面的代码解释一下javascript中var和let关键字的区别