我有这个方法,我想从ArrayList中获取整数 并将它们存储到int但它给我这个错误消息:
Exception in thread "main" java.lang.ClassCastException: java.lang.String
cannot be cast to java.lang.Integer
下面是代码:
public static void convertList() {
ArrayList list= new ArrayList();
list.add(0, 1);
list.add(1, 4);
list.add(2, 5);
list.add(3, 10);
int a=0;
for (Object str : list) {
a=(Integer.parseInt((String) str));
System.out.println(a);
}
}
我做错了什么?
答案 0 :(得分:1)
这行有问题:
a =(Integer.parseInt((String)str));
将Object转换为String java支持各种方式。
您可以使用String.valueof(str)
ArrayList list = new ArrayList();
list.add(0, 1);
list.add(1, 4);
list.add(2, 5);
list.add(3, 10);
int a = 0;
for (Object str : list) {
a = Integer.parseInt(String.valueOf(str));
System.out.println(a);
}
或者您可以添加一个带有Object的""+
来将类型更改为String。
ArrayList list = new ArrayList();
list.add(0, 1);
list.add(1, 4);
list.add(2, 5);
list.add(3, 10);
int a = 0;
for (Object str : list) {
a = Integer.parseInt("" + str);
System.out.println(a);
}
或者,您可以使用toString()
方法。
a = Integer.parseInt(str.toString());
要详细了解例外,请点击here
答案 1 :(得分:0)
您有此错误,因为您尝试将Integer转换为String,但您想转换它。只有当我们有这个类或子类的对象时,我们才能将对象强制转换为某个类。
如果要将Integer转换为String,则可以使用方法String.valueOf或obj.toString
但在你的情况下,最好使用整数列表而不是对象列表:ArrayList。在这种情况下,您不需要隐藏String
中的值