我有两节课:
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());
}