Can';Android中的t读出阵列列表

Can';Android中的t读出阵列列表,android,arraylist,Android,Arraylist,我将一个ArrayList传递给另一个方法,在这里我只想读出列表中的一个特定字符串 public void pruefeWerHat(ArrayList<Teilnehmer> test){ System.out.println(test); public void pruefeWerHat(ArrayList测试){ 系统输出打印LN(测试); 我在LogCat中得到这个 “1彼得潘0,2汉斯0” 现在我只想使用这个名称,但是如果我说(在sysout之后) 字

我将一个ArrayList传递给另一个方法,在这里我只想读出列表中的一个特定字符串

public void pruefeWerHat(ArrayList<Teilnehmer> test){

        System.out.println(test);
public void pruefeWerHat(ArrayList测试){
系统输出打印LN(测试);
我在LogCat中得到这个

“1彼得潘0,2汉斯0”

现在我只想使用这个名称,但是如果我说(在sysout之后)

字符串名称=test.get(1)


他说的问题是,他无法将Teilnehmer转换为字符串。我也测试了Teilnehmer.get(1),但它也不起作用。

当调用打印test toString函数时,请在代码中使用它

String name = test.get(1).toString();
ArrayList
可用的
get(int-index)
方法返回类型
E
。在本例中,它返回类型
Teilnehmer
,这显然不是字符串。您可以尝试将
Teilnehmer
(尽管可能不需要)转换为字符串,或者简单地调用
.toString()
方法(例如,test.get(1.toString())继承自类型
对象
。或者,如果需要,调用返回字符串的方法。test.get(1.getNameAsString()

允许您调用System.out.println(Teilnehmer)中的类型的原因是println调用对象的字符串表示:

 public void println(Object x) {
      String s = String.valueOf(x);
          synchronized (this) {
              print(s);
              newLine();
          }
  }

Teilnehmer的成员是什么

你需要使用类似于

字符串名称=(Teilnehmer)测试[1]。名称

其中Name是您尝试提取的字段

系统输出打印LN(测试)

自动使用toString()方法。此方法位于Object类中,因此java中的所有对象都可以调用此方法

当你这样做的时候

字符串名称=test.get(1)

toString()方法不是单独调用的,您必须自己调用它

字符串名称=test.get(1.toString()

另外,如果要更改打印内容,可以覆盖类中的toString()方法

@Overwrite
public String toString() {
    String stringToPrint = "This string will be printed";
    return stringToPrint;
}
现在当你这么做的时候

系统输出打印LN(测试)


您将看到的不是“1 PeterPan 0 0,2 Hansi 0 0”,而是“此字符串将被打印”(或您选择在toString()实现中添加的任何内容)。

您是否尝试过string name=test.get(1).toString()?