Java 我的类中的数据为空?

Java 我的类中的数据为空?,java,class,object,null,Java,Class,Object,Null,我有一个类包含一个布尔值,两个双精度,然后是该类的数组,我需要布尔值和双精度具有默认值false、0.0和0.0,然后我有函数,它引用了数组的一个元素,当我试图从类中访问一个变量时,它抛出一个异常,表示它为null。这是我的类和调用它的函数 public class PanelData { boolean flag = false; double tempStart = 0.0; double tempEnd = 0.0; }

我有一个类包含一个
布尔值
,两个
双精度
,然后是该类的
数组
,我需要
布尔值
双精度
具有默认值
false、0.0和0.0
,然后我有
函数
,它引用了
数组的一个元素
,当我试图从类中访问一个变量时,它抛出一个异常,表示它为null。这是我的类和调用它的函数

    public class PanelData {
        boolean flag = false;
        double tempStart = 0.0;
        double tempEnd = 0.0;
    }

    private PanelData[] panelInfo = new PanelData[115];

private void panelInfoHandler (int i, double timeStart, double timeEnd) throws SQLException
    {
        if (!panelInfo[i].flag) {
            delete();
            insert();
            panelInfo[i].flag = true;
            panelInfo[i].tempStart = timeStart;
            panelInfo[i].tempEnd = timeEnd;
        }
        else if (panelInfo[i].tempStart <= timeStart && panelInfo[i].tempEnd >= timeEnd) {

        }
        else
        {
            insert();
            panelInfo[i].tempStart = timeStart;
            panelInfo[i].tempEnd = timeEnd;
        }
    }

newpaneldata[115]
创建一个
115
null引用数组。您是否已使用对实际对象的引用填充了
panelInfo

然后,您至少需要遍历该数组,并为数组中的每个元素创建
PanelData
的新实例,例如

for (int i = 0; i < panelInfo.length; i++)
  panelInfo[i] = new PanelData();
for(int i=0;i
在初始化之前,数组中充满了
null
元素。为了澄清这一点,如果您创建一个基本体对象数组,您将获得一个默认(即0)值数组。但是,使用
null
元素创建
对象
的数组

int[] myIntArray = new int[10];  // 10 default values of 0
Integer[] myIntegerArray = new Integer[10];  // 10 null elements

添加此行,然后指定值:

 if(panelInfo[i] == null) panelInfo[i] = new PanelInfo(); 

你需要像这样做

for(int i=0;i<115; i++)
{
   PanelInfo[i] = new PanelData();
}
for(int i=0;i
public class PanelData{
布尔标志=假;
双温启动;
双温端;
公共数据(){
flag=false;
tempStart=0.0;
tempEnd=0.0;
}
private PanelData[]panelInfo=新PanelData[115];
对于(int i=0;i<115;i++)
panelInfo[i]=新的PanelData();

通过创建默认构造函数,可以使用默认值(false、0.0、0.0)实例化变量在这种情况下,您可以测试是否返回了一个普通对象。

哦,不,我没有,我应该使用
ArrayList
,然后运行
for循环,添加对实际对象的引用吗?@Beef:如果集合的大小需要在运行时更改,那么使用
ArrayList
migh“真的不容易。@Beef-那么您已经实例化了对象,还是打算创建新的对象呢?我现在都可以使用了,谢谢您的输入,我已经知道需要多少对象了,所以aix、pedros或hughs answer都可以快速修复,谢谢大家。”
for(int i=0;i<115; i++)
{
   PanelInfo[i] = new PanelData();
}
  public class PanelData {
        boolean flag = false;
        double tempStart;
        double tempEnd;

        public PanelData() {
            flag = false;
            tempStart = 0.0;
            tempEnd = 0.0;    
    }
    private PanelData[] panelInfo = new PanelData[115]; 

    for(int i = 0; i < 115; i++)
       panelInfo[i] = new PanelData();