为了账号安全,请及时绑定邮箱和手机立即绑定

为什么第二个玩家的名称会把第一个玩家的名称覆盖

//创建玩家
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());
    }
}


正在回答

2 回答

出现覆盖 说明你的List创建的位置不对 查看一下是否是List随着你的for循环而重新实例化了

0 回复 有任何疑惑可以回复我~

你要new两次player,你new一次就只有个一个对象,你一直在给同一个对象赋值当然会覆盖

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么第二个玩家的名称会把第一个玩家的名称覆盖

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信