当调用anther类时,get方法返回null数组。它导致nullPointerException

时间:2017-06-24 20:47:30

标签: java arrays class constructor nullpointerexception

当我尝试使用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()时,它表明该数组仍为null。有什么办法可以解决这个问题吗?这看起来很容易,但我花了很多时间。

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]);


      }

    }

`

1 个答案:

答案 0 :(得分:0)

您必须定义不带参数的构造函数。因为你写了getValue = new MagazineValue();它可能没有初始化字段magazineName