引用: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关键字用法的更多相关文章

  1. C#中var关键字用法分析

    原文连接 本文实例分析了C#中var关键字用法.分享给大家供大家参考.具体方法如下: C#关键字是伴随着.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当 ...

  2. c#中var关键字用法

    Technorati 标签: C# 转载自csdn:http://blog.csdn.net/robingaoxb/article/details/6175533   var关键字是C# 3.0开始新 ...

  3. php中var关键字用法

    见很多朋友说在php中定义变量用不用var都没关系,其实不然. 看看例子,如果我这样使用var: 1 var $a=123; 2 echo $a; 3 //那么程序会提示语法错误,要去掉var这个变量 ...

  4. JAVA语言中冒号的用法

    近来由于本人要介入android平台的开发,所以就买了本JAVA语言的书学习.学习一段时间来,我的感觉是谭浩强就是厉害,编写的<C编程语言>系列丛书不愧是经典.书中对C语言的介绍既系统又全 ...

  5. C#中 Var关键字

    文章来源: 青水白凡 C#中 Var关键字 Var是C#3.5新增的一个关键字,用来代替某些具体的类型,由编译器自动判断变量类型,编译器可以根据变量的初始化值"推断"变量的类型. ...

  6. java stream中Collectors的用法

    目录 简介 Collectors.toList() Collectors.toSet() Collectors.toCollection() Collectors.toMap() Collectors ...

  7. 【转】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  8. 【java_需阅读】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  9. Java中static关键字用法总结

      1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · ...

随机推荐

  1. windows 下安装或者卸载memcache

    1.安装到系统服务中: 在doc中:执行此软件 memcached.exe -d install(如果提示错误,要找到cmd.exe用管理员身份打开) 2.卸载: 在doc中:执行此软件 memcac ...

  2. hql查询实例

    1.设计思路 (1)在页面中设计一个下拉框,数据取自数据库: (2)查询是用hql查询. 2.设计实例 (1)Java模型层 public class Tree { private String id ...

  3. zTree实现地市县三级级联数据库映射

    zTree实现地市县三级级联数据库映射 Province.hbm.xml: <?xml version="1.0" encoding="UTF-8"?&g ...

  4. freemarker写select组件(二)

    freemarker写select组件 1.宏定义 <#macro select id datas value=""> <select id="${id ...

  5. Jquery+Json+Handler文件结合应用实例

    1.页面script代码-[model数据.字符串] <script type="text/javascript" charset="utf-8" src ...

  6. stun/turn/ice学习笔记

    stun基本只是用于client探测NAT之后靠近stun server的外网地址,本身不包含应用数据通信的功能,其底层STUN协议通信多是基于UDP的.多个端点之间相互通过信令通道拿到彼此的NAT外 ...

  7. C# MVC的一种高效分页的html方法

    首先创建一个html的扩展方法,这个方法是万能的,可以直接拿到您的项目中使用: //主要就是输出分页的超级链接的标签 //自定义分页Helper扩展 public static HtmlString ...

  8. 《用TCP/IP进行网络互连》读书笔记

    <用TCP/IP进行网络互连>读书笔记   第2章,基本网络技术 网络通信分类:基于连接的通信(connection-oriented),基于非连接的通信(connectionless) ...

  9. ASP.NET CSS 小结

    1.ASP.NET 引用CSS 1.Site.master里面设置webopt <webopt:bundlereferencerunat="server"path=" ...

  10. 第一篇:操纵MySQL数据库(1) - 基于MySQLdb库

    前言 本文讲解在Python语言中使用MySQLdb库操纵MySQL数据库的方法. 准备工作 1. 安装Python和MySQL2. 安装MySQLdb (exe下载地址:http://sourcef ...