java通过另一个arraylist的对象方法向arraylist添加字符串
我正在将我的游戏更新为Java,但我只留下了一个小错误:
每次死亡玩家的名字被“添加”到死亡玩家的名字列表中,它都会添加玩家对象的哈希代码
编辑:这里有一个指向zip文件夹的链接,其中包含源代码: https://dl.dropboxusercontent.com/u/98444970/KarmaSource.zip
有问题的代码是两个地方,其中一行获取玩家对象,另一行获取对象的名称。在println中使用时,它可以很好地打印玩家的名字。然而,在第二部分中,它做了同样的事情,但它打印player对象的hashcode,而不是调用其get_name方法并返回字符串。我不确定它是否与第三部分有关,在第三部分中,它将“名字”添加到死亡玩家列表pdead中
如果你想要一个到编译版本的链接,请告诉我。它是在JDK 7 Update 51 64位下编译的
编辑:我成功了,我最初引用的是玩家列表,而不是pdead列表。感谢所有帮助我的人。如果你还想要这个游戏,请告诉我,我会放一个下载链接:D
# 1 楼答案
回答你的问题:
这个代码是错误的:
if (karma.pdead.isEmpty()) {System.out.println("None");} else for (int index = 0;index < karma.pdead.size();index++) System.out.println(pdead.get(index));
什么是因果报应?不管是什么,看起来你指的是两种不同的东西
试试这个:
if (pdead.isEmpty()) { System.out.println("None"); } else { for (String deadPlayer : pdead) { System.out.println(deadPlayer); } }
很确定这会奏效:)
一些进一步的建设性建议:
你的代码几乎打破了我在Java中所知道的所有惯例/良好实践。但我是来帮忙的,不是来批评的,所以让我们努力改进这段代码
你的主函数甚至不会编译。应该是这样的:
公共静态void main(字符串[]参数)
始终用大括号将for循环体包裹起来
好的:
好的:
糟糕:
getName()
,而不是{