Java 使用数组在类中创建对象
我从Java 使用数组在类中创建对象,java,arrays,object,Java,Arrays,Object,我从事件eventStuff1、2和3=新事件中更改转换为以下格式。我在事件类中没有做任何更改,所以我认为这不是问题所在。我在这里的目的是通过使用数组简化代码。这是我第一次研究阵列,我不确定到底出了什么问题。在座右铭被调用(即eventStuff[x])之后,我不断得到一个“NullPointerException”。在我看来,在第一次运行中,x=0,第二次运行,x=1,第三次运行,x=2。我做错了什么 package chapter.pkg8; import javax.swing.JOpt
事件eventStuff
1、2和3=新事件中更改代码>转换为以下格式。我在事件类中没有做任何更改,所以我认为这不是问题所在。我在这里的目的是通过使用数组简化代码。这是我第一次研究阵列,我不确定到底出了什么问题。在座右铭被调用(即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"
+ "*******************************************************");
}
}
package chapter.pkg8;
导入javax.swing.JOptionPane;
公共类事件演示{
公共静态void main(字符串[]args){
调用座右铭();
Event[]eventStuff=新事件[3];
对于(int x=0;x<3;++x){
eventStuff[x].setEventCodeString();
eventStuff[x].setGuests();
eventStuff[x].setContactNumber();
eventStuff[x].setEventStr();
}
}
公共静态void callmonit(){
JOptionPane.showMessageDialog(null,
“**************************************************************************\n”
+“*Carly's制作的食物是聚会的基础!*\n”
+ "*******************************************************");
}
}
您应该首先初始化该值:
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
列表事件=新的ArrayList(3);
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;
}
对于(int i=0;i<3;i++){
Event evt=新事件();
事件。setXXX(***);
事件。setXXX(***);
事件。setXXX(***);
事件[i]=evt;
}
您只需分配数组,但不会将对象存储在数组中您的数组中充满了空值。请原谅,我不太精通该语言。看在我的份上,你能说得更具体一点吗?当然,你的建议是完美的。非常感谢您的支持!
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;
}