我收到错误,无法找到解决方法。
我将一个int添加到ArrayList。
int n = 1;
ArrayList list = new ArrayList();
list.add( n );
再往下,我试着把它放回另一个int:
grid[ y ][ x ] = list.get(0);
我也试过这个:
grid[ y ][ x ] = (int) list.get(0);
但是它不起作用,我收到了这个错误:
found : java.lang.Object
required: int
grid[ y ][ x ] = (int)list.get(0);
^
我希望有人可以帮助我。
答案 0 :(得分:10)
使用类型参数而不是原始ArrayList
:
ArrayList<Integer> list = new ArrayList<Integer>();
您得到的错误是因为您无法将Object
转换为int
,因此自动装箱会发生故障。您可以将其转换为Integer
,然后将其自动装箱到int
,但使用type参数是一个更好的解决方案。
答案 1 :(得分:7)
使用ArrayList<Integer>
。当您执行list.get()
时,您会收到一个Integer
,您可以致电intValue()
以获取int
答案 2 :(得分:3)
(Integer)list.get(0)
会做到这一点。然后,自动取消装箱会自动将其转换为int
答案 3 :(得分:0)
Array-list和Arrays之间的主要区别是,Array-list只能将对象存储到其中,而不能存储原始数据类型(在您的情况下为整数)。为了解决这个问题,我们使用ArrayList<Integer> list = new ArrayList<Integer>();
谢谢。
答案 4 :(得分:0)
你可以像这样创建一个 ArrayList:
ArrayList<Integer> List = new ArrayList<Integer>();
然后做同样的事情,出现这个问题是因为ArrayList只能以Objects的形式存储元素,因为它是Java中Collections框架的一部分,所有的东西都以Objects的形式存储。因此,它将原始 int 转换为导致问题的包装类整数。