簡體   English   中英

Java - 如何將 object 添加到另一個 object 的列表中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM