java - 返回位置不值
问题描述
我有一个由另一个类的对象组成的 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());
}
但不能要求返回特定的玩家姓名。
解决方案
此行将打印您对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;
}
}
推荐阅读
- javascript - Angular - 事件 OnScroll
- bash - 您将如何使用 shell 脚本安装 rpm 并将其放入 cron
- java - 如何使用正则表达式在lookhead中给出范围,例如 ^(?=(.*[az]){1,3})(?=.*[0-9]).{2,5}$
- angular - 更新到 Angular 6 版本后 Angular Cli 无法正常工作
- exception - NullPointerException 和 IllegalAccessException 的不同行为
- regex - 使用正则表达式捕获多个电话号码
- udp - 通过环回接口的 UDP 最大数据包大小
- c++ - UE4 类运算符 bool() 重载
- css - Vuejs 和 css 不能在 Firefox 上运行?
- java - 通过电子表格将 JSOUP 的 URL 导入到 Scrape