java - 在 Arraylist 类中使用 .size() 时出现 NullPointerException
问题描述
目前,我正在做一个处理 ArrayList 类的作业。在某些时候,我需要检查讲师的 id 并确保讲师没有两次添加到 ArrayList 中,所以我做了一个 for 循环来遍历所有已注册的 id 并获取 id 并检查如果它已经存在
问题是当我在循环中使用方法“.size()”时,JVM 抛出 NullPointerException,我不知道为什么。
==================================================== =========================
我需要阅读的是:
\\name - id - dateOfBirth - 性别 - 学位 - 专业 - 城市 - 可用性
Amanda Smith, 102020, 320101200000, M, PhD, 软件工程, 纽约, true
==================================================== ======================
这是代码:
public static void main(String[] args) {
/* NOTE: I HAVE A CLASS CALLED "UniversityMember" THAT IS A SUPERCLASS FOR "Instructor" CLASS */
//declare what I need
ArrayList<UniversityMember> membersList;
Scanner read = new Scanner("inputFile.txt");//the file contains the text above
//First: Split the line everytime the sign ", " shows
String[] line = read.nextLine().split(", ");
//Second: Assign each valuse to its correspondeding variable
String name = line[0];
String id = line[1];
long date = Long.parseLong(line[2]);
Date birthDate = new Date(date);
char gender = line[3].charAt(0);
String degree = line[4];
String specialization = line[5];
String address = line[6];
boolean availability = Boolean.parseBoolean(line[7]);
//check if the Id is registered already
for (int i = 0; i < membersList.size(); i++) { //ERROR OCCURE
if (membersList.get(i) == null) {
break;
}
if (membersList.get(i).id.equals(id)) {
System.out.println("The instructor is registered already, the ID is found in the system.");
System.exit(0);
}
}
//add and make a new object for the constructor
membersList.add(new Instructor(name, id, birthDate, gender, degree, specialization, address, availability));
System.out.println("The instructor is successfully added.");
}//end main
解决方案
问题是 membersList 在您调用 .size() 时不存在
代替
ArrayList<UniversityMember> membersList;
你需要初始化它
ArrayList<UniversityMember> membersList = new ArrayList<UniversityMember>();
推荐阅读
- java - 如何将此 java lambda 代码重构为只有 1 个 lambda
- python - Pandas - 如果字段为 NaT (Null),则填写其他列
- sockets - 错误“已建立的连接被主机中的软件中止”
- r - 因子错误(newCases[, a], levels = 1:nlevels(data[, a]), labels = levels(data[, : invalid 'labels'; 长度 0 应该是 1 或 2
- java - NoNodeAvailableException[配置的节点都不可用] Elasticsearch
- simulation - 如何将我的 OMNeT++ 模型导出为 FMU(功能模型单元)?
- elasticsearch - Elasticsearch - 按大于特定值的多个字段的总和过滤
- object - 在组件之间共享对象
- docker - Dockerfile 在一行中定义多个 ARG 参数
- javascript - 选择或提取单个基于 JavaScript 动画的代码的最有效方法是什么?