[英]Java - How can I add an object to a list of another object
我有一個名為 Process 的 Class 和一個名為 Event 的 Class。 Process 有一個事件列表作為其屬性之一。 我正在讀取一個文件並填充進程屬性和事件屬性,但是當我嘗試將事件添加到進程 object 的事件列表中時,我得到 NullPointerException。 我在 C# 方面有更多經驗,但我必須在 Java 中這樣做。 這是文件中的一行:
0 1 CPU 10 IO 3 CPU 50 IO 3 CPU 10
這些是類:
public class Process {
int arrivalTime;
int priority;
LinkedList<Event> events;
}
事件.java,
public class Event {
String type;
int duration;
}
FCFS.java,
public class FCFS{
public static void main(String[] args) {
List<Process> readyQueue = new LinkedList<Process>();
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader("path.txt"));
String line = reader.readLine();
while (line != null) {
String[] arr = line.split(" ");
Process process = new Process();
process.arrivalTime = Integer.parseInt(arr[0]);
process.priority = Integer.parseInt(arr[1]);
for(int i = 2; i < arr.length; i = i + 2) {
Event event = new Event();
event.type = arr[i];
event.duration = Integer.parseInt(arr[i+1]);
process.events.add(event);
}
readyQueue.add(process);
// read next line
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我想這是由於沒有初始化事件。 你能試着做下面的事情嗎
public class Process {
int arrivalTime;
int priority;
LinkedList<Event> events = new LinkedList();
}
您尚未初始化events
列表。 在Process
class 本身中將其初始化為一個空列表,或者在創建Process
object 之后將其初始化。
在 Java 中,如果不初始化 Class 類型,則默認為 null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.