使用数组在类中创建对象

时间:2014-04-01 03:00:39

标签: java arrays object

我从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"
        +   "*******************************************************");
    }

}

2 个答案:

答案 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;
    }

您只需分配数组,但不会将对象存储在数组中