为什么这个不能工作:
ArrayList<LinkedList<int>>
这个做了什么:
ArrayList<LinkedList<Integer>>
???
为什么这个不能工作:
ArrayList<LinkedList<int>>
这个做了什么:
ArrayList<LinkedList<Integer>>
???
因为Java只能在泛型(在<
和>
之间)中使用类(而不是原始类型)和数组(也包括原始类型的数组)。
List<Integer> list;
这也是为什么有基本类型的包装类的原因:
int -> Integer
boolean -> Boolean
double -> Double
byte -> Byte
etc...
public MyClass<T extends Number>
这段代码?但这样对于布尔类型是不起作用的。 - Martijn Courteaux<>
中的参数必须是一个对象,因为这些类只能容纳对象。
int
是一种原始类型,而 Integer
只是该类型的包装类,因此 Integer
是可以使用的。
因为定义是 LinkedList< T >
,只有 Object
才能在这里使用 < T >
。
int
是原始类型,所以 LinkedList< int > - 编译错误
Integer
是对象,LinkedList < Integer > - 正确的选择