我从Event eventStuff
1,2和3 = new Event;
更改为以下格式。我在Event类中没有改变任何内容,所以我认为这不是问题。我的目的是通过使用数组来简化代码。这是我第一次进入数组,我不确定会出现什么问题。在调用座右铭(即eventStuff [x])后,我不断收到“NullPointerException”。在我看来,在第一次运行期间,x = 0,第二次,x = 1,第三次,x = 2.我做错了什么?
package chapter.pkg8;
import javax.swing.JOptionPane;
public class EventDemo{
public static void main(String[] args){
callMotto();
Event[] eventStuff = new Event[3];
for(int x = 0; x < 3; ++x){
eventStuff[x].setEventCodeString();
eventStuff[x].setGuests();
eventStuff[x].setContactNumber();
eventStuff[x].setEventStr();
}
}
public static void callMotto(){
JOptionPane.showMessageDialog(null,
"*******************************************************\n"
+ "* Carly's Makes The Food That Makes The Party! *\n"
+ "*******************************************************");
}
}
答案 0 :(得分:1)
Event[] eventStuff = new Event[3];
您应首先初始化值:
eventStuff[0]=new event();
eventStuff[1]=new event();
eventStuff[2]=new event();
未初始化eventStuff
的值,默认值为[null, null, null]
因此,请致电
eventStuff[x].setEventCodeString();
eventStuff[x].setGuests();
eventStuff[x].setContactNumber();
eventStuff[x].setEventStr();
会给你NullPointerException
答案 1 :(得分:0)
List<Event> events = new ArrayList<Event>(3);
for(int i = 0; i < 3; i++){
Event evt = new Event();
events.setXXX(***);
events.setXXX(***);
events.setXXX(***);
events[i] = evt;
}
您只需分配数组,但不会将对象存储在数组中