我想知道如何在自定义ArrayList中添加字符串值。
我已经尝试了下面的代码,但它给了我错误
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
aList.add("My Name");
也试过这个;
aList.addAll("My Name");
aList.add((MyCustom)"My Name");
假设您的类MyCustom
具有属性name
:
class MyCustom{
String name;
public setName(String name){
this.name=name;
}
.....
}
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
MyCustom myCustomObject=new MyCustom();
myCustomObject.setName("abc"); // here set the properties for your custom class object
aList.add(myCustomObject);
如前所述,您的"MyCustom"既不是String的子级,也不是String的父级(两者都不能)。这将使我们了解您的"MyCustom"对象的需要,或者您希望它做什么/执行什么。
通过使用下面的代码,您可以将List中的对象类型限制为Mycustom,这很好。但是,如果您必须在该列表中添加一个String,那么您应该删除这些类型。此外,使用列表界面也是一种更好的做法。
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
List aList = new ArrayList(); //This will allow all objects to be added to list.
或者,根据您对MyCustom对象的需要,您可以将其修改为如下所示:aList.add(new MyCustom("Name String"));
或aList.add(new MyCustom().setName("Name String"));
在您的情况下是
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
您声明的数组列表只有MyCustom类对象,但有
aList.add("My Name");
您正在存储字符串值。并且String类和MyCustom类之间没有关系。因此java编译器显示了错误。要实现这一点,您需要实现任一
ArrayList<String> aList = new ArrayList<String>();
aList.add("My Name");
或
Class MyCustom {
String field;
public void setField(String f) {
field=f;
}
public String getField() {
return field;
}
}
然后
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
aList.add(new MyCustom().setField("My Name"));
您已经创建了一个列表,该列表将包含类型为MyCustom
的对象,因此除非您的对象扩展了String,否则您无法向其中添加String。
如果你想要一个包含String和MyCustom对象的列表,那么你必须创建这样的列表:
List<Object> list = new ArrayList<Object>();
list.add(new MyCustom(...));
list.add("Some String");