Java ArrayList for-loop lcv被认为是一个对象,而不是一个int

时间:2015-01-17 01:33:06

标签: java arraylist

我正在尝试使用可变长度序列创建一个数组,所以我决定使用一个ArrayList。

由于我想找到数字序列的总和,我尝试使用ArrayList.get(int index)方法获取ArrayList中元素的值,但NetBeans向我抱怨{{1以下代码:

incompatible types: Object cannot be converted to int

具体而言,行int seqLen = sequence.size(); // number of elements in ArrayList sequence int seqSum = 0; // sum of all elements in the sequence for(int i = 0; i <= seqLen; i++) { int seqPart = sequence.get(i); seqSum+= seqPart; }

我不确定为什么它认为int seqPart = sequence.get(i);i而不是object,这段代码对于程序的运行至关重要。

基本上,我在这里做错了什么,我现在已经过几次关于ArrayList的JavaDoc,但我还是没有弄清楚是什么问题。

1 个答案:

答案 0 :(得分:1)

如果您查看the JavaDoc,您会注意到get返回E。如果您没有定义E是什么,它将默认为Object。无法将对象分配给int。像这样定义你的arraylist:

List<Integer> sequence = new ArrayList<>();

这说,&#34;我将用整数&#34;填充这个ArrayList。这样,当您致电get()时,它会返回Integer而不是Object

这一部分更高级,并不是非常重要,所以如果它超越你的头脑,请不要担心:你可以将Integer分配给int的原因是因为称为Auto unboxing的概念。