在Java-ME中转换整数向量

时间:2012-10-22 01:41:25

标签: blackberry java-me

我在编译整数向量时遇到问题,如下所示。转换字符串是可以的,但我遇到了整数问题。

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;
    }

}

3 个答案:

答案 0 :(得分:5)

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

你不能把原始类型放在Arraylist或Vectors中。您必须使用包装类进行此类操作,例如Integer而非intDouble而不是double

类似地,在从Vector中检索值时,您将获得Integer的对象而不是int。

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

record.setPrice(((Integer) listPrice.elementAt(index)).intValue());

答案 1 :(得分:3)

Java无法将对象转换为基本类型。您必须调用对象的方法来执行此任务。如果您知道您的元素继承自Number,那么您就可以

record.setPrice(((Number) listPrice.elementAt(index)).intValue());

答案 2 :(得分:0)

您无法将对象强制转换为基元。

您可以执行以下操作:

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

java autoboxing将为您处理剩下的事情。