我有两节课:

FirstClass{
    private int id;
    private SecondClass[] arrayofSecond;
    private int ind;
    public FirstClass(){}
    public FirstClass(int id){
         this.id=id;
    }
    public void addElements(SecondClass e){
         arrayofSecond[ind]=e;
         ind++;
    }
    public SecondClass[] getArraySecondClass(){
        return arrayofSecond;
    }
}

SecondClass{
    private int id;
    private SecondClass(){}
    private SecondClass(int id){
          this.id=id;
    }
    public int getId(){
          return id;
    }
}


现在,我需要获取已在Main程序的FirtsClass中填充的数组,如下所示:

FirstClass f1=new FirstClass(10);
SecondClass s1=new SecondClass(10);
SecondClass s2=new SeconClass(20);
f1.addElements(s1);
f1.addElements(s2);
FirstClass f=null;
SecondClass s[];
s=f.getArraySecondClass();
for (int i=0;i<s.length;i++){
    System.out.println(s[i].getId());
}


问题是我得到了Null指针异常错误。我已经读到,按照“不与陌生人说话”的原则,也许这不是正确的方法,但是我看不出有其他方法可以做到这一点。

有什么帮助吗?

最佳答案

为什么已经有f时创建一个f1变量?

FirstClass f1=new FirstClass(10);
SecondClass s1=new SecondClass(10);
SecondClass s2=new SeconClass(20);
f1.addElements(s1);
f1.addElements(s2);

SecondClass s[];
s=f1.getArraySecondClass();
for (int i=0;i<s.length;i++){
    System.out.println(s[i].getId());
}

09-25 20:39