我正在制作一个购物清单移动应用程序(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()*);
}
答案 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。