Java ME ArrayList - Vector - 通过向量定义对象类型和访问对象方法

时间:2010-03-11 01:25:31

标签: java-me vector

我正在制作一个购物清单移动应用程序(Java ME),我有两个类; item,list。

item对象允许获取/设置名称和数量(string itemName,int quantity)

现在我需要在list类中存储一个项目数组,并能够从列表数组索引中访问该对象的方法,如下所示;下面的代码是伪代码

item[] itemList = new item[]

for(int x = 0; x < itemList.length; x++)
{
    String tempStoreOfName = itemList[x].getItemName()

    System.out.println(tempStoreOfName)
}

我已经google了很多,发现你可以使用向量,但我似乎无法调用对象的方法。我哪里错了?

我在C#中做过类似的事情,我使用的是ArrayLists,但Java ME不支持这些

当前代码

Vector itemList = new Vector();

for(int x = 0; x <= itemList.size(); x++)
{
 dataOutputStream.writeUTF(itemList.elementAt(x)*here i cannot put .getItemName()*);
}

1 个答案:

答案 0 :(得分:2)

由于你不能使用泛型,你必须强制转换,以便Java知道你从Vector得到了什么。请注意,Vector.elementAt()返回Object?所有你可以做的就是像对象一样对待它:

item myItem = itemList.elementAt(n);

失败,因为java无法自动转换为更具体的类。你必须使用:

Object myItem = itemList.elementAt(n);

这对你没用,因为你想要一个项目,而不是一个对象。

您必须将其强制转换为所需类型的对象:

for(...)
{
    item myItem = (item) itemList.elementAt(n);
    myItem.method();
}

从那时起,你只需使用myItem。