我在转换整数向量时遇到了问题,如下所示。转换字符串是可以的,但我对Integer有问题。
private Vector a = new Vector();
Record record = new Record();
record.setName((String) listName.elementAt(i));
record.setPrice((int) listPrice.elementAt(index));
a.addElement(record);下面是类Record
package goldenicon;
public class Record {
String name;
int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}发布于 2012-10-22 01:47:36
record.setPrice((int) listPrice.elementAt(index));不能将基元类型放入Arraylist或Vectors中。您必须为这样的操作使用包装类,例如Integer而不是int,或者Double而不是double。
类似地,在从Vector检索值时,您将得到Integer的对象,而不是int。
所以你必须编写这样的代码
record.setPrice(((Integer) listPrice.elementAt(index)).intValue());发布于 2012-10-22 01:45:52
Java不能将对象强制转换为基本类型。您必须调用对象的方法来执行此任务。如果您知道您的元素继承自Number,则只需
record.setPrice(((Number) listPrice.elementAt(index)).intValue());发布于 2012-10-22 01:46:07
不能将对象强制转换为原语。
您可以执行以下操作:
int z = (Integer) listPrice.elementAt(0);java自动装箱将为您处理剩下的部分。
https://stackoverflow.com/questions/13004024
复制相似问题