当我尝试从对象数组中调用方法时,我的Java代码崩溃了

时间:2011-04-29 15:20:43

标签: java arrays

我只是在学习Java并试图拥有一个类的数组。当一个调用从数组中调出时它会崩溃。如果它不是数组

,则工作正常
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  cDate test=new cDate();
  test.setDay(0);
  mAppoitments = new cDate[24];
  // crashes why?????
  mAppoitments[0].setDay(0); 

5 个答案:

答案 0 :(得分:9)

您尚未使用对象填充数组。你必须:

  cDate[0] = test;

否则您在索引0处有null,并且您无法在null上调用任何内容。

下次提问时,请提供所有必要的详细信息:

  • 什么是异常消息和堆栈跟踪。 “崩溃”几乎意味着 nothing
  • 告诉我们您在代码段中未初始化的变量是什么。您可以看到一个答案告诉您修复本地声明,这可能是一个实例变量。

答案 1 :(得分:5)

您有一个包含24个对象的数组,每个对象都设置为null。您需要先初始化每个,然后才能调用方法。

答案 2 :(得分:4)

您已初始化数组,但未初始化数组中的对象。尝试在使用前初始化这些元素。

mAppoitments = new cDate[24];
for (int i = 0; i < mAppoitments.length; i++)
    mAppoitments[i] = new cDate();
mAppoitments[0].setDay(0);

答案 3 :(得分:1)

final int COUNT= 24;

mAppoitments = new cDate[COUNT];
for(int i = 0 ; i < COUNT ; ++i) {
   mAppoitments[i] = new cDate();
   mAppoitments[i].setDay(0); 
}

答案 4 :(得分:-1)

cDate myAppointments = new cDate[24];

尝试声明变量类型