java
主页 > 软件编程 > java >

java7钻石语法知识点总结

2019-11-24 | 秩名 | 点击:

针对创建泛型定义和实例太过繁琐的问题,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项目中的一个特性——使用变参时的警告信息。

原文链接:https://www.jb51.net/article/174938.htm
相关文章
最新更新