Java toString()没有打印正确的变量

时间:2015-12-02 04:37:54

标签: java tostring println

我在Java中有这样的类:

public class Wrapper {
    public static List<Type> list;

    @Override
    public String toString() {
        return "List: " + this.list;
    }

    public static void main(String[] args) {
        Wrapper w = new Wrapper();
        System.out.println(w);
    }
}

和这样的课程:

public class Type {
    private static String name;

    public Type(String n) {
        this.name = n;
    }

    @Override
    public String toString() {
        return this.name;
    }
}

不是获取每个项目的名称,而是获取数组中每个项目的最后一项的名称。有什么建议吗?

2 个答案:

答案 0 :(得分:6)

Type课程中,您将name标记为static,因此在打印type.toString()时,您始终只有一个值。 如果要打印列表中的所有成员,请使用:

for(Type t : list){
   System.out.print(t.toString());
}

答案 1 :(得分:-1)

@Override
public String toString() {
    String s = "";
    for(Type t : list) {
        s += t;
    }
    return s;
}