我的代码编译,但我在运行时收到此错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at GUI.<init>(GUI.java:46)
at GUI.main(GUI.java:252)
Caused by: java.lang.NullPointerException
at java.util.Objects.requireNonNull(Objects.java:203)
at java.util.Arrays$ArrayList.<init>(Arrays.java:3813)
at java.util.Arrays.asList(Arrays.java:3800)
at db.<clinit>(db.java:23)
... 2 more
这是导致错误的代码:
public static String strLine;
public static String[] filearray;
public static List<String> list = Arrays.asList(filearray);
public static void load() throws IOException{
FileInputStream in = new FileInputStream("slist.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
filearray = new String[4];
while ((strLine = br.readLine()) != null) {
for (int j = 0; j < filearray.length; j++){
filearray[j] = br.readLine();
}
}
in.close();
错误中引用的第46行:
JList stafflist = new JList(db.list.toArray());
我正在尝试将文本文件作为数组加载并将其添加到JList人员列表中,但是我收到了运行时错误。
答案 0 :(得分:1)
这是在你的宣言中:
public static String[] filearray;
public static List<String> list = Arrays.asList(filearray);
fileArray
为空,您正在尝试围绕它创建一个List。
您可以在此处初始化fileArray
:
public static String[] filearray = new String[4];
将值放入Arrays.asList(filearray)
后调用filearray
。
答案 1 :(得分:0)
我在您的代码中看到的问题是:
public static String[] filearray;
public static List<String> list = Arrays.asList(filearray);
您正尝试使用filearray
方法转换当前为空的Arrays.asList()
。
您应首先初始化filearray
。