首页 > 解决方案 > 如何忽略 2 个具有相同 ID 的用户并只打印第一个用户?

问题描述

我在 java 中创建一个组类,但我有一个问题,如果用户尝试执行可能违反对象状态的操作,我不知道如何忽略该操作并使应用程序显示错误消息

这是代码:

import java.util.ArrayList;

public class Group {
    private static int staticNumber = 0;
    private int groupNumber;
    private Trainer trainer;
    private String sportName;
    private ArrayList<Kid> kids;
    private final static int MAX_LIMIT = 10;

    public Group(Trainer t, String sport) {
        groupNumber = staticNumber++;
        this.trainer = t;
        this.sportName = sport;
        kids = new ArrayList<>();
    }

    public static int getStaticNumber() {
        return staticNumber;
    }

    public int getGroupNumber() {
        return groupNumber;
    }

    public Trainer getTrainer() {
        return trainer;
    }

    public String getSportName() {
        return sportName;
    }

    public ArrayList<Kid> getKids() {
        return kids;
    }

    public boolean addKid(Kid k) {
        if (kids.size() < MAX_LIMIT) {
            kids.add(k);
            return true;
        } else {
            return false;
        }
    }
    public boolean removeKid(Kid k) {
        return kids.remove(k);
    }
}

标签: java

解决方案


在返回之前添加一个 println() 将在控制台中输出消息:

public boolean addKid(Kid k) {
        if (kids.size() < MAX_LIMIT) {
            kids.add(k);
            return true;
        } else {
            System.out.println("User wasn't Added Try again");
            return false;
            
        }
    }

或者,如果您想抛出异常,这将终止您的代码运行:

public boolean addKid(Kid k) {
        if (kids.size() < MAX_LIMIT) {
            kids.add(k);
            return true;
        } else {
            throw new ArrayIndexOutOfBoundsException("Too many Kids");
        }
    }

希望这有帮助!


推荐阅读