【发布时间】:2020-09-30 06:05:33
【问题描述】:
我创建了一个从 HashMAP 中删除学生的方法。当 id 为空时,它应该抛出异常。有人知道为什么它不起作用吗?
public void deleteStudent(String firstName, String lastName, String phoneNumber, String birthDate, PersonGender gender, String id) {
Student student = new Student(firstName, lastName, phoneNumber, birthDate, gender, id);
if (students.containsKey(id)) {
students.remove(id);
}
if (students.containsKey(id == null)) {
throw new NullPointerException("The student does not exist");
}
}
公共类应用程序{ public static void main(String[] args) {
StudentRepository myStudent = new StudentRepository();
myStudent.addStudent("St","Rt","0742", "1993.03.04", PersonGender.MALE, "1930303");
myStudent.addStudent("Sr","Ro","0742", "1994.03.04", PersonGender.MALE, "1940304");
myStudent.addStudent("Se","Rb","0742", "1995.03.04", PersonGender.MALE, "1950305");
myStudent.addStudent("Sm","Re","0742", "1996.03.04", PersonGender.MALE, "1950306");
myStudent.deleteStudent("Str","Rob","0742", "1992.03.04", PersonGender.MALE, "null");
myStudent.addStudent("Sr","Ro","0742", "1994.03.04", PersonGender.MALE, "1940304");
myStudent.displayStudents();
}
}
【问题讨论】:
-
不就是
if (id == null) { throw new .... }吗? -
而且您似乎希望在尝试使用
id之前。 -
它具有相同的行为,没有抛出异常
-
1) 请在创建/读取
students的位置添加代码,目前无法理解该变量中的内容。 2)containsKey(id == null)其实和containsKey(True)是一样的,如果students只是一组id,可以换成containsKey(null) -
我添加了你要求的内容
标签: java