java7钻石语法知识点总结

 更新时间:2019年11月24日 10:45:40   投稿:laozhang  
在本篇文章里小编给大家整理的是关于java7钻石语法的相关知识点内容,有需要的朋友们参考下。

针对创建泛型定义和实例太过繁琐的问题,Java 7做了一项改进,以减少处理泛型时敲键盘的次数。比如你用userid(整型值)标识一些user对象,每个user都对应一个或多个查找表1。这用代码应该如何表示呢?

一种为提高处理速度而用查询取代计算的处理机制。一般是将事先计算好的结果存在数组或映射中,然后在需要该结果时直接读取,比如用三角表查某一角度的正弦值。——译者注

Map<Integer, Map<String, String>> usersLists = 
    new HashMap<Integer, Map<String, String>>(); 

这简直太长了,并且几乎一半字符都是重复的。如果能写成

Map<Integer, Map<String, String>> usersLists = new HashMap<>();

让编译器推断出右侧的类型信息是不是更好?神奇的Coin项目满足了你这个心愿。在Java 7中,像这样的声明缩写完全合法,还可以向后兼容,所以当你需要处理以前的代码时,可以把过去比较繁琐的声明去掉,使用新的类型推断语法,这样可以省出点儿空间来。

编译器为这个特性采用了新的类型推断形式。它能推断出表达式右侧的正确类型,而不是仅仅替换成定义完整类型的文本。

为什么叫“钻石语法

把它称为”钻石语法”是因为这种类型信息看起来像钻石。原来提案中的名字是“为泛型实例创建而做的类型推断改进”(Improved Type Inference for Generic Instance Creation)。这个名字太长,可缩写ITIGIC听上去又很傻,所以干脆就叫钻石语法了。

新的钻石语法肯定会让你少写些代码。我们最后还要探讨Coin项目中的一个特性——使用变参时的警告信息。

以上就是关于java7中钻石语法的概念知识点,希望我们整理的内容能够帮助到大家。

相关文章

  • MyBatisPlus 封装分页方法示例

    MyBatisPlus 封装分页方法示例

    本文主要介绍了基于MybatisPlus的分页插件封装,包括分页结果对象、查询对象的封装,以及对象转换处理,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • Java多线程的调度_动力节点Java学院整理

    Java多线程的调度_动力节点Java学院整理

    有多个线程,如何控制它们执行的先后次序呢?下文给大家分享四种方法及java多线程调度的实例代码,需要的朋友参考下吧
    2017-05-05
  • Java中的MapStruct实现详解

    Java中的MapStruct实现详解

    这篇文章主要介绍了Java中的MapStruct实现详解,MapStruct 是一个代码生成器,它基于约定优先于配置的方法大大简化了 JavaBean 类型之间映射的实现,生成的映射代码使用普通方法调用,需要的朋友可以参考下
    2023-11-11
  • SpringBoot中使用拦截器拦截跳转登录的两种实现方法

    SpringBoot中使用拦截器拦截跳转登录的两种实现方法

    拦截器(Interceptor)是Spring框架提供的一种机制,用于在请求的生命周期中插入自定义逻辑,如身份验证、日志记录等,本文将详细介绍两种在SpringBoot中使用拦截器来控制用户登录并跳转到指定页面的方法,需要的朋友可以参考下
    2024-11-11
  • MyBatis-Plus动态表名的使用

    MyBatis-Plus动态表名的使用

    本文主要介绍了MyBatis-Plus动态表名的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析

    Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析

    这篇文章主要介绍了Java集合之Set、HashSet、LinkedHashSet和TreeSet深度解析,List是有序集合的根接口,Set是无序集合的根接口,无序也就意味着元素不重复,更严格地说,Set集合不包含一对元素e1和e2 ,使得e1.equals(e2) ,并且最多一个空元素,需要的朋友可以参考下
    2023-09-09
  • JAVA抛出异常的三种形式详解

    JAVA抛出异常的三种形式详解

    这篇文章主要介绍了JAVA抛出异常的三种形式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 在SpringBoot中实现一个订单号生成系统的示例代码

    在SpringBoot中实现一个订单号生成系统的示例代码

    在Spring Boot中设计一个订单号生成系统,主要考虑到生成的订单号需要满足的几个要求:唯一性、可扩展性、以及可能的业务相关性,本文给大家介绍了几种常见的解决方案及相应的示例代码,需要的朋友可以参考下
    2024-02-02
  • java微信开发中的地图定位功能

    java微信开发中的地图定位功能

    本文通过实例代码给大家介绍了java微信开发中的地图定位功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • 深入浅析Java中普通代码块、构造代码块与静态代码块

    深入浅析Java中普通代码块、构造代码块与静态代码块

    这篇文章主要介绍了Java中普通代码块、构造代码块与静态代码块的相关资料,静态代码块>Main()>构造代码块 。非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08

最新评论