2017-06-24 5 views
0

getメソッドを使用して別のクラスの配列要素にアクセスしようとすると、NullPointerExceptionが発生し続ける。私のコードは、配列を初期化するためにコンストラクタを使用し、それは正常に動作します。getメソッドは、antherクラスのフォームを呼び出すとnull配列を返します。 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]); 


     } 

    } 

`

+0

通話の[mcve]を共有できますか? – Mureinik

+0

@Mureinikちょっと丁度お願いします。 –

+0

あなたが投稿したこのコードでは、それは不可能です..あなたはやっています*** this.magazineName = new String [magazineName.length]; ***雑誌はnullにはなれません –

答えて

0

あなたは、引数なしのコンストラクタを定義しておく必要があります。 getValue = new MagazineValue();と書いているので、フィールドmagazineNameを初期化できないことがあります。

+0

私はすでにそれを忘れてしまったでしょう。 –

+0

@ NathanDamtewここでは、デフォルトのコンストラクタを使用するということが問題です。デフォルトコンストラクタでは配列を初期化しません。 –

関連する問題