我的问题是我有一个类,其中有另一个类的元素列表。
public class Branch
{
private ArrayList<Player> players = new ArrayList<Player>();
String brName;
public Branch() {}
public void setBr(String brName){this.brName = brName;}
public String getBr(){return brName;}
public ArrayList<Player> getPlayers() { return players; }
public void setPlayers(ArrayList<Player> players) { this.players =new ArrayList<Player>(players); }
}
public class Player
{
private String name;
private String pos;
private Integer salary;
private Integer number;
public Player(String name, String pos, Integer salary, Integer number)
{
this.name = name;
this.pos = pos;
this.salary = salary;
this.number = number;
}
public Player(){}
public String getName() { return name; }
public String getPos() { return pos; }
public Integer getSalary() { return salary; }
public Integer getNumber() { return number; }
public void setName(String name) { this.name = name; }
public void setPos(String pos) { this.pos = pos; }
public void setSalary(Integer salary) { this.salary = salary; }
public void setNumber(Integer number) { this.number = number; }
}
我的问题是打印一个分支的球员及其姓名、职位、工资、号码。 为此,我简单地尝试了这个:
String p1,p2;
int a1,a2;
p1 = input.readLine();
p2 = input.readLine();
a1 = Integer.parseInt(input.readLine());
a2 = Integer.parseInt(input.readLine());
players[0].setName(p1);
players[0].setPos(p2);
players[0].setSalary(a1);
players[0].setNumber(a2);
ptmp.add(players[0]);
myBranch[0].setPlayers(ptmp);
System.out.println(myBranch[0].brName + " " + myBranch[0].getPlayers());
我写这个只是为了尝试如何显示。我创建了一系列玩家和分支,因此它们已经定义了。问题是 getPlayers()
没有给我任何结果。有什么方法可以做到这一点?
最佳答案
当您尝试 println
或连接 ArrayList 时(正如您执行 ""+ myBranch[0].getPlayers()
时所做的那样,将调用方法 ArrayList.toString()
以返回列表内容的字符串表示形式。
ArrayList.toString()
将返回一个字符串,其中包含列表中每个元素的 toString()
结果(此行为实际上是在其父类 AbstractCollection
之一中定义的。
由于您的 Player 类不会覆盖 java.lang.Object
提供的 toString()
实现,因此输出可能类似于 packagename.Player@a8f123
。
因此,如果您希望在对 Player
对象列表调用 ArrayList.toString()
时获得有意义的输出,则应重写 Player
中的 toString()
以提供您想要返回的 Player
的字符串表示形式。
关于java - 在 Java 中显示类的内容时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3005715/