【发布时间】:2017-06-24 20:47:30
【问题描述】:
当我尝试使用 get 方法从另一个类访问数组元素时,我不断收到 NullPointerException。我的代码使用构造函数来初始化数组,而且效果很好。
MagazineValue.class
public class MagazineValue {
public MagazineValue(){
}
private String[]magazineName;
public MagazineValue(String[] magazineName){
this.magazineName = new String[magazineName.length];
System.arraycopy(magazineName, 0, this.magazineName, 0,
magazineName.length);
}
public String[] getMagazineName(){
return magazineName;
}
}
这里的构造函数将参数中的数组值复制到私有数组变量中。 当我尝试从另一个类调用 getMagazineName() 时,它显示该数组仍然为空。有什么办法可以解决这个问题吗?这确实看起来很容易,但我花了很多时间。
FirebaseValueListner.class
public class FirebaseValueListner {
public void setMagazineName(){
String[]magazineName={"African Daily" , "African Bussines", "African Women"};
MagazineValue setValue= new MagazineValue(magazineName);
}
}
FirebaseValueListner 从 Firebase 数据库中获取值并将其值保存到 ArrayList 中,然后将值复制到数组中。 数组被传递给 MagazineValues 的构造函数。
LibraryFragment.class `
public class LibraryFragment {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[]magazineName;
MagazineValue getMagazineName;
getMagazineName=new MagazineValue();
magazineName=getMagazineName.getMagazineName();
System.out.println("Magazine Name : " +magazineName[1]);
}
}
`
【问题讨论】:
-
你能分享一下通话的minimal reproducible example吗?
-
@Mureinik 请稍等。
-
使用您发布的此代码是不可能的.. 您正在这样做 this.magazineName = new String[magazineName.length]; 所以杂志不能为空
-
你能分享你的代码你是如何从其他类调用这个方法的
-
顺便说一句,指向 null ref 的数组与包含指向 null 的对象的数组完全不同......你知道吗??
标签: java arrays class constructor nullpointerexception