是否有任何理由这样做:是否有理由在Java中使参数泛型泛化?
List<Integer> integers = new ArrayList<Integer>();
与此:
List<Integer> integers = new ArrayList<>();
我见过的第一次使用了几次,似乎提供任何好处,这引出了一个问题:为什么使用它?
我知道钻石运营商(<>)是区分new LinkedList()
和new LinkedList<>()
的必要条件,这一点很清楚。
是否有任何理由这样做:是否有理由在Java中使参数泛型泛化?
List<Integer> integers = new ArrayList<Integer>();
与此:
List<Integer> integers = new ArrayList<>();
我见过的第一次使用了几次,似乎提供任何好处,这引出了一个问题:为什么使用它?
我知道钻石运营商(<>)是区分new LinkedList()
和new LinkedList<>()
的必要条件,这一点很清楚。
我见过的第一次使用了几次,它似乎没有提供 好处,这引出了一个问题:为什么要用它?
<>
运营商已经推出了只有在JDK1.7,所以你可能已经看到了遗留代码,它使用new ArrayList<Integer>()
(不<>
运营商)
此外,对代码的支持(如<Integer>
)无使用<>
运营商仍然存在,因为向后兼容性。
所以,答案是如果您的项目使用JDK1.7或更高版本,您将不会使用它。
在引入由菱形语法提供的类型推断之前,在Java 7之前首次使用冗余类型的类型。
可能有重复的[Java 7中钻石操作符的意义是什么?](http://stackoverflow.com/questions/4166966/what-is-the-point-of-the-diamond-operator-in -java-7) –
呃,什么?菱形运算符在另一种形式之后添加,以便让您执行'ArrayList <>'语法而不是更长的形式。你混淆了历史排序。 –
除非代码使用1.7之前的编译器进行编译,否则不使用'new ArrayList <>()'是绝对没有意义的,如果这就是你要求的。 – manouti