LHS上的Java泛型,但不是RHS的赋值

时间:2013-04-24 22:12:13

标签: java generics

我遇到了以下代码,并想知道这是否是一个好习惯:

LinkedList<String> ll = new LinkedList(); 

我会写的

List<String> l = new LinkedList<String> (); 

所以这里有两个问题:

  1. 我一直认为使用类型List而不是ArrayList / LinkedList是一种好习惯。
  2. 如果省略赋值运算符的RHS上的菱形,究竟会发生什么?

1 个答案:

答案 0 :(得分:4)

  1. Always program to interfaces,这样您的代码就可以保持与实现无关。
  2. 您正在创建原始类型,它会给您一个警告,但它会编译。 “LinkedList是一种原始类型。对泛型类型LinkedList的引用应该参数化”。但是因为擦除它实际上并不重要。