我想从列表中获取元素。
我正在处理一个项目,类名称旁边是:
<T extends Comparable<T>>
写。
我确实有一个ArrayList List<T> list = new ArrayList<>();
但是如何从列表中删除元素?
我尝试了list.get(1);
,但收到错误消息:error: incompatible types: T cannot be converted to int
答案 0 :(得分:2)
您不能声明
List<int> list = ...
但您可以放心声明
List<Integer> list = new ArrayList<>()
Integer
类与必需的签名匹配(它实现Comparable<Integer>
)。
所以当您这样做时,就可以了
List<Integer> list = new ArrayList<>()
list.add(13) // autoboxing converts int to Integer
int value = list.get(0) // autoboxing converts Integer back to int
请特别注意,可以在该列表中添加null
-s,因此以下内容会随着NPE爆炸:
List<Integer> list = new ArrayList<>()
list.add(null) // null reference is okay
int value = list.get(0) // throws, we got null Integer reference,
// that cannot be converted to a primitive
如果您需要这样做,可以执行以下操作:
Integer value = list.get(0)
if (null != value) {
int primitive = value // safe, because non-null
}