首页 > 解决方案 > 返回位置不值

问题描述

我有一个由另一个类的对象组成的 ArrayList。我无法从 ArrayList 访问值。我已经填充了我的 ArrayList,并编写了以下内容来尝试检索特定元素。但是,我不断返回 Player@4f2456 而不是玩家的名字。

public void playerName(int index)
{
    Player player = players.get(index);
    System.out.println(player);
}

我可以使用以下方法返回玩家列表:

public void listAllPlayerNames()
{
    for (Player players : players)
        System.out.println (players.getPlayerName());
}

但不能要求返回特定的玩家姓名。

标签: javaarraylist

解决方案


此行将打印您对player对象的引用。这就是为什么你得到Player@4f2456.

System.out.println(player);

这是上述方法的实现:

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

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

因此,为了player正确使用 打印信息System.out.println,您必须重写toString此类中的方法。

public class Player {
   @Override
   public String toString() {
       return playerName;
   }
}

推荐阅读