慕容6209797
2019-07-25 17:02
//创建玩家
public void creatPlayer(){
System.out.println("-----------开始创建玩家-------------");
Player newplayer = new Player();
for(int i= 1 ;i<3 ; i++) {
System.out.println("请输入第" + i + "位玩家的ID和姓名");
while (true) {
try {
System.out.println("输入ID");
int id = console.nextInt();
for (Player player : playerList) {
if (player.getId()==(id)) {
System.out.println("该ID已被占用,请重新输入");
throw new Exception();
}
}
newplayer.setId(id);
break;
} catch (InputMismatchException e) {
console.next();
System.out.println("输入错误,请重新输入");
} catch (Exception e) {
continue;
}
}
System.out.println("请输入姓名");
String name = console.next();
newplayer.setName(name);
playerList.add(newplayer);
//i++;
}
for(int j =0 ; j<playerList.size();j++){
System.out.println("欢迎玩家" + playerList.get(j).getName());
}
}
出现覆盖 说明你的List创建的位置不对 查看一下是否是List随着你的for循环而重新实例化了
你要new两次player,你new一次就只有个一个对象,你一直在给同一个对象赋值当然会覆盖
Java入门第三季
409776 学习 · 4546 问题
相似问题
回答 3
回答 3