Java 8类型推断静态方法调用

软泥

从Java 7开始,允许使用菱形运算符以避免重复类型实参。例如

List<String> myList = new ArrayList<String>();

变成

List<String> myList = new ArrayList<>();

为什么在使用静态方法调用时不允许使用相同的符号?例如,当创建一个SettableFuture时,我想调用

SettableFuture<String> myFuture = SettableFuture.<>create();

代替

SettableFuture<String> myFuture = SettableFuture.<String>create();

我知道可以使用原始方法调用

SettableFuture<String> myFuture = SettableFuture.create();

但这不只是一样

List<String> myList = new ArrayList();

我的问题:调用泛型静态方法时应该使用raw方法调用还是重复type参数?

哈维尔·卡贝罗(Javier Cabero)

Java对象是通过Constructor创建的因为这是正常现象,所以Java开发人员创建了空的diamon作为Sugar语法功能。

静态的对象实例化方法不应像构造方法那样频繁发生。它们用于许多其他东西。因此,不计划使用语法来检测您要尝试执行的操作是否是创建需要通用类型的对象。

编辑:

我错了。静态方法中的类型也有语法糖(省去了diamon),并且create()比我想象的更常见。

我的回答:我希望省去diamon,因为在变量中已经指定了类型,这样可以避免代码中的信息冗余。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章