慕容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入门第三季
409792 学习 · 4340 问题
相似问题
回答 3
回答 3