我想将名为iD的int与myArrayList的索引进行比较。如果存在匹配项(iD = 1,并且该索引处有一个元素),我想向该字符串myName分配该位置处的项目值。为此,我使用了:
for (int i =0; i <myArrayList.size (); i++) {
if (iD == i) {
myName = myArrayList.get(i);
}
但是我在这一行收到错误“无法从MyObject转换为String”:
myName = myArrayList.get(i);
这是完整的代码:
int iD = 1;
String myName;
public class MyObject
{
public String name;
public MyObject( String name)
{
this.name = name;
}
@Override
public String toString()
{
return (name);
}
}
ArrayList<MyObject> myArrayList = new ArrayList<MyObject>();
void setup()
{
size(100, 60);
myArrayList.add(new MyObject("a"));
myArrayList.add(new MyObject("b"));
myArrayList.add(new MyObject("c"));
for (int i =0; i <myArrayList.size (); i++) {
if (iD == i) {
myName = myArrayList.get(i);
}
System.out.println(myArrayList);
myArrayList.removeAll(myArrayList);
}
}
我不明白为什么会收到此错误,因为myName是一个字符串,而ArrayList包含字符串。
谁能帮我解决这个问题?
谢谢你的帮助
最佳答案
实际上,您的arrayList包含“ MyObject”。尝试调用toString方法。myName = myArrayList.get(i).toString();
要么myName = myArrayList.get(i).name
因为名字是公开的。