AgendaFunctions というクラス、Main というクラス、ReadFiles というクラスがあります。Main には、Agenda Functions と ReadFiles の参照変数があります。AgendaFunctions には参照変数の配列があります。配列をインスタンス化するコードはありますが、ReadFiles からインスタンス化する必要があります。メインからインスタンス化すると、正常に動作します。しかし、ReadFiles からメソッドを呼び出すと、機能しません。java.lang.NullPointerException エラーが発生します。メインのコードは次のとおりです。
public class Main {
public static void main(String[] args) throws Exception {
ReadFiles fw = new ReadFiles(); fw.read();
agendafunctions link = new agendafunctions();
議題機能:
public class agendafunctions {
int amount = 20;
public void setamount(int data) {
}
static String input = "true";
agendaitem item[] = new agendaitem[amount];
int counter = 0;
public void instantiate() {
item[1] = new agendaitem();
item[2] = new agendaitem();
item[3] = new agendaitem();
}
public void createobject(String name, Boolean complete, String Comments) {
item[counter].name = name;
item[counter].complete = complete;
item[counter].comments = Comments;
counter++;
}
読み取りファイル:
public class ReadFiles {
public void read() throws IOException {
agendafunctions af = new agendafunctions(); af.instantiate();
int readitem = 1;
BufferedReader data = new BufferedReader(new FileReader("C:/Agenda Dev Docs/data.txt"));
int filestoread = Integer.parseInt(data.readLine());
while (readitem <= filestoread) {
String name;
String complete;
String comments = null;
String line;
Boolean bc = null;
BufferedReader read = new BufferedReader(new FileReader("C:/Agenda Dev Docs/"+readitem+".txt"));
readitem++;
name = read.readLine();
complete = read.readLine();
comments = "";
while((line = read.readLine()) != null) {
comments = comments + line;
}
if(complete.equals("Complete")) {
bc = true;
} else if(complete.equals("Incomplete")) {
bc = false;
}
af.createobject(name, bc, comments);
}
}
ReadFiles からインスタンス化するメソッドを呼び出すと、NullPointerException が発生します。Main から呼び出すと、すべてが機能します。しかし、さらなる開発では、ReadFiles からメソッドを呼び出す必要があります。どうすればこれを修正できますか? ありがとう。