0

所以我有一个数组列表

private static ArrayList<Job> teamNoOne = new ArrayList<Job>();

Job 类型的,它有

public class Job {
    //public long time;
    public int teamNo;
    public String regNo;
    public String gridRef;

}

然后我从 textField 获取数据

Job job = new Job();
job.gridRef = tfGridRef.getText();

这一切都有效,将其打印到系统等。

当我将它添加到数组列表中,并使用以下代码将其打印出来:

teamNoOne.add(job);

System.out.println(teamNoOne.get(0));

我只是得到这个:Job@1c79dfc

无法为我的生活弄清楚为什么,

干杯

4

1 回答 1

4

当使用 sysout 打印对象时,将toString调用其方法。如果toString类中没有重写方法,则将使用其默认实现。对象方法的默认实现toString打印类名和对象哈希码的无符号十六进制表示,由@符号分隔。

您需要重写类中的toString方法Job才能以漂亮的方式打印对象。大多数 IDE 提供了一种自动生成方法的toString方法。这是通过eclipse生成的:

@Override
public String toString() {
    return "Job [teamNo=" + teamNo + ", regNo=" + regNo + ", gridRef="
            + gridRef + "]";
}
于 2013-10-21T09:38:22.197 回答