所以我正在用Java编写一个程序,每当我运行它时,我都会收到一个错误"Exception in thread"main"Java.lang.NullPointerException"。当我仔细观察它时,它似乎是由引用变量数组引起的。以下是导致问题的代码:
public class agendafunctions {
static String input = "true";
agendaitem item[] = new agendaitem[5];
public agendafunctions() {
item[0].name = "one";
item[1].name = "two";
item[2].name = "three";
item[3].name = "four";
item[4].name = "five";
}
name是类agendaitem中的一个变量。根据我在其他地方读到的内容,这个错误是由程序试图使用null值的变量引起的。但当我添加一个值时,它说它不能从String或其他类型转换为agendaitem。有人能帮忙吗?
您需要首先实例化这些对象。声明一个对象数组只会得到一个null数组。尝试在这些null上设置属性会产生NullPointerException。
在设置任何名称之前,您需要运行:
for (int i = 0; i < item.length; i++)
item[i] = new agendaitem();
此外,您应该将类名更改为AgentaItem,以遵守正确的Java风格。
在使用之前尝试添加以下内容:
for(int i = 0; i< item.length; i++) {
item[i] = new agendaitem();
}
创建对象的数组时,其所有值都为null(基元是默认的基元值)。在使用每个索引之前,您必须手动(或通过循环)初始化它。