java - 如何忽略 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);
}
}
解决方案
在返回之前添加一个 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");
}
}
希望这有帮助!
推荐阅读
- c++ - 无法设置断点以查看错误 C++ ORDERED LIST
- docker - 使用多阶段 Dockerfile 构建时的 COPY 问题——没有这样的文件或目录
- bash - 在 for 循环中打印带有 awk 的列
- visual-studio - Visual Studio 烦人的自动完成 IF 空间 -> #IF
- javascript - execCommand粗体不要在Firefox中切换
- angular - 如何使用 Angular 5 处理 https 调用中的服务器端证书
- windows - 安装后,`docker info` 不起作用
- python-3.x - 为 seaborn 的 factorplot boxplot 中的每个框添加标签
- javascript - 如何获取单击的div元素的rowIndex
- sql-server - Microsoft SQL Server 中的 UPDLOCK 是否会阻止插入 IF EXISTS 查询中的键?