您好我想知道如何创建对象列表。基本上我正在做的是:
ArrayList<Object> FilledTransportList = new ArrayList<Object>();
我想用这种方法填充列表中的对象:
public boolean checkFields()
{
for (Map.Entry<String, EditText> entry : checkMap.entrySet())
{
String checkData = entry.getKey();
String text = entry.getValue().getText().toString();
if(text.length()>0)
{
FilledTransportList.add(checkData + " - " + text +" - " + "min");
}
}
return true;
}
但是,我得到的是一个字符串列表。
[something, something, something...etc]
我希望它是这样的:
[something],[something],[something],[something]...etc
我做错了什么?
答案 0 :(得分:0)
很难理解你的意思,但我知道为什么你会得到一个字符串列表。您正在使用以下行将字符串添加到列表中:
FilledTransportList.add(checkData + " - " + text +" - " + "min");
如果您要创建用户定义对象的列表,那么在创建ArrayList时,您应该在&#39;&lt;&gt;&#39;之间具有用户定义对象的名称。而不是&#34;对象&#34;。通过使用超类Object,您可以在列表中放置任何类型的对象,这就是您能够向列表中添加字符串的原因。 String是Object的子类。
答案 1 :(得分:0)
我认为你有这样的陈述:
System.out.println (FilledTransportList)
执行此操作时,将调用toString() - ArrayList中的Method。 toString() - Method实现类似这样的Default-Behavior:
[obj1.toString(),obj2.toString(),objN.toString()]
如果您想要另一个列表表示,则必须为此实现自己的方法。
public static String getRepresentation (ArrayList<String> list);
并将其称为:
System.out.println (getRepresentation (FilledTransportList));
另一种可能性是编写一个封装列表的类并覆盖toString() - Method。
答案 2 :(得分:0)
对于任何已知的数据类型,它都不会那样工作。它不仅与String有关,而且与Integer,BigDecimal等相同。
现在,如果你正在寻找数据抽象,最好有一个带有String及其getter和setter的临时对象。
public class TestObject {
private String abc;
}
现在添加到列表中:
TestObject obj = new TestObject();
obj.setAbc(checkData + " - " + text +" - " + "min");
FilledTransportList.add(obj);