我想知道如何在自定义ArrayList中添加字符串值。
我已尝试过以下代码,但它给了我错误
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
aList.add("My Name");
并尝试过这个;
aList.addAll("My Name");
aList.add((MyCustom)"My Name");
答案 0 :(得分:0)
假设您的班级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);
答案 1 :(得分:0)
您创建了一个包含MyCustom
类型对象的列表,因此您无法向其添加String,除非您的对象扩展了String。
如果你想要一个包含String和MyCustom对象的列表,那么你必须像这样创建你的列表:
List<Object> list = new ArrayList<Object>();
list.add(new MyCustom(...));
list.add("Some String");
答案 2 :(得分:0)
如前所述,您的&#34; MyCustom&#34;既不是孩子也不是String的父母(也不可能)。 这将使我们需要你的“我的自定义”#34;对象或你想要它做什么/执行什么。
通过使用下面的代码,您可以将List中的对象类型限制为Mycustom,这很好。但是如果你必须在该列表中添加一个String,那么你应该删除这些类型。使用List接口也是一种更好的做法。
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"));
答案 3 :(得分:0)
java中的ArrayList是泛型类型。意味着它可以存储任何对象。但是要在ArrayList中存储对象,我们需要指定类名,这意味着ArrayList只存储在声明数组列表时已指定的类名的对象。
在你的情况下
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"));