1

我在转换整数向量时遇到问题,如下所示。转换字符串没问题,但我遇到了整数问题。

private Vector a = new Vector();
Record record = new Record();

record.setName((String) listName.elementAt(i));
record.setPrice((int) listPrice.elementAt(index));
a.addElement(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;
    }

}
4

3 回答 3

5
record.setPrice((int) listPrice.elementAt(index));

您不能将原始类型放入 Arraylist 或 Vectors 中。对于此类操作,您必须使用包装类,例如Integer而不是int,或Double而不是double

同样,在从 Vector 中检索值时,您将获得 Integer 对象,而不是 int。

所以你必须编写这样的代码

record.setPrice(((Integer) listPrice.elementAt(index)).intValue());
于 2012-10-22T01:47:36.630 回答
3

Java 不能将对象转换为原始类型。您必须调用对象的方法来执行此任务。如果你知道你的元素继承自Number,你可以这样做

record.setPrice(((Number) listPrice.elementAt(index)).intValue());
于 2012-10-22T01:45:52.527 回答
0

您不能将对象强制转换为基元。

您可以改为执行以下操作:

    int z = (Integer) listPrice.elementAt(0);

而 java 自动装箱会为你处理剩下的事情。

于 2012-10-22T01:46:07.377 回答