我从Geonicics Trail In Java Documentation中看到了什么Type Witness
BoxDemo.<Integer>addBox(Integer.valueOf(10), listOfIntegerBoxes);
Run Code Online (Sandbox Code Playgroud)
或者,如果省略类型见证,Java编译器会自动推断(从方法的参数)类型参数是Integer:
BoxDemo.addBox(Integer.valueOf(20), listOfIntegerBoxes);
Run Code Online (Sandbox Code Playgroud)
想了解
See*_*ose 10
一些快速回答您的问题:
这样做的正确方法是什么?使用Type Witness还是让Java推断?
由于这两种方法都是有效的,因此没有技术上正确的答案.但代码可读性应始终是质量标准.所以后者更好.此外,您可能会在开发的稍后时间更改参数的类型.有了类型推断你不必须改变该行.
是否存在绝对需要使用类型见证的情况?
是.当无法从方法的输入参数推断出类型时,需要它.也许泛型类型仅用于返回值,独立于参数的类型.然后你只需要指定它.
这是Java 5的一个功能还是以后添加的?
泛型是Java 5的语言特性.类型推断是在JLS中指定的编译器功能.在Java 8 JLS中,这个主题有了自己的章节.每个Java版本都对该功能进行了一些增强.例如,Java 7引入了钻石运算符.据我所知,Java 5中已经引入了类型见证方法.
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |