我将ArrayList传递给另一个方法,我只想读出列表中的特定字符串。
public void pruefeWerHat(ArrayList<Teilnehmer> test){
System.out.println(test);
我在LogCat中得到了这个
&#34; 1 PeterPan 0 0,2 Hansi 0 0&#34;
现在我只想使用该名称,但如果我说(在sysout之后)
他说的问题是,他无法从Teilnehmer转换为String。我也测试了Teilnehmer.get(1),但它既没有工作。String name = test.get(1);
答案 0 :(得分:0)
当你打印测试时,调用toString函数,所以在你的代码中使用它
String name = test.get(1).toString();
答案 1 :(得分:0)
get(int index)
可用的ArrayList
方法返回类型E
。在这种情况下,它返回类型Teilnehmer
,它显然不是String。您可以尝试将Teilnehmer
(虽然可能不合适)强制转换为String,或者只是调用继承自类型.toString()
的{{1}}方法(例如; test.get(1).toString()) 。或者,如果需要,调用返回String的方法。 test.get(1).getNameAsString();
允许在System.out.println(Teilnehmer)中调用类型的原因是println调用对象的字符串表示形式:
Object
答案 2 :(得分:0)
Teilnehmer的成员是什么?
您需要使用类似
的内容string name =(Teilnehmer)test [1] .Name
其中Name是您要提取的字段
答案 3 :(得分:0)
当你这样做时
的System.out.println(测试);
自动使用toString()方法。此方法位于Object类中,因此java中的所有对象都可以调用此方法。
当你这样做时
String name = test.get(1);
toString()方法不是自己调用的,你必须自己调用它。为此,只需使用
String name = test.get(1).toString();
此外,如果要更改打印内容,可以覆盖类中的toString()方法。
@Overwrite
public String toString() {
String stringToPrint = "This string will be printed";
return stringToPrint;
}
现在你做的时候
的System.out.println(测试);
而不是看到“1 PeterPan 0 0,2 Hansi 0 0”,你会看到“这个字符串将被打印”(或者你选择在你的toString()实现中添加的任何内容。