我想将我的名为iD的int与myArrayList的索引进行比较。如果有匹配(iD = 1并且该索引处有一个元素),我想为我的字符串myName分配该位置的项目值。为此,我使用了:
for (int i =0; i <myArrayList.size (); i++) {
if (iD == i) {
myName = myArrayList.get(i);
}
但是我在这一行得到了“无法从MyObject转换为字符串”的错误:
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是一个String而ArrayList包含字符串。 谁能帮我解决这个问题呢?
感谢您的帮助
答案 0 :(得分:5)
Actually, your arrayList contains "MyObject"s. Try calling the toString method.
myName = myArrayList.get(i).toString();
or
myName = myArrayList.get(i).name
since name is public.
答案 1 :(得分:3)
您的MyObject不属于String数据类型。您可以通过执行
来解决此问题myName = myArrayList.get(i).toString();
答案 2 :(得分:2)
MyObject是一个对象,而不是String。在将其分配给myName之前,需要将其转换为String。
你有没有可以做到的方法?