我想将我的名为iD的int与myArrayList的索引进行比较.如果有匹配(iD = 1并且该索引处有一个元素),我想为我的字符串myName分配该位置的项目值.为此,我使用了:
for (int i =0; i <myArrayList.size (); i++) {
if (iD == i) {
myName = myArrayList.get(i);
}
Run Code Online (Sandbox Code Playgroud)
但是我在这一行得到了"无法从MyObject转换为字符串"的错误:
myName = myArrayList.get(i);
Run Code Online (Sandbox Code Playgroud)
这是整个代码:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我得到这个错误,因为myName是一个String而ArrayList包含字符串.谁能帮我解决这个问题?
谢谢你的帮助
小智 5
实际上,您的arrayList包含"MyObject".尝试调用toString方法.
myName = myArrayList.get(i).toString();
要么
myName = myArrayList.get(i).name
因为名字是公开的.