2017-11-04 16 views
-1

私はシングルトンパターンを実装しようとしていますが、私はいくつかの問題に直面しています。Androidスタジオのシングルトン - 動作しない

私はいくつかのオブジェクトを含む配列リストを持っています。プログラムの実行中にその配列のコピーを1つ作成したいと思っていて、プログラムのどこからでもその配列にアクセスしたいと思っています。私が下のコードを使ってそれをしようとすると、null参照オブジェクトエラーが発生する

私はこれを実装するためにさまざまな方法を試しましたが、達成しようとしているものを明確にするために、

public class Singleton{ 

     static private Singleton singleton = null; 
     private ArrayList<Object> array; 

     private void Singleton(){ 
     } 

     public static Singleton getInstance(){ 
       if(singleton == null) 
        singleton = new Singleton(); 
       return singleton; 
     } 

     public void addObject(Object object){ 
      array.add(object); 
     } 

} 

public class callSingleton(){ 

     public void callSingleton(){ 
       Singleton singleton = Singleton.getInstance(); 
       Object object = new Object(); 
       singleton.addObject(object); 
     } 
} 
+0

何が問題なのですか?配列は決して初期化されません。そのNulPointerExcception。あなたの質問 – ADM

+0

で具体的に配列を初期化して問題を解決しました。しかし、いったん作成されると、アレイのデータをどのように初期化するのですか?たとえば、作成したファイルのデータを配列にロードする場合、どうすればよいですか?シングルトンオブジェクトをクラス外から呼び出すと、データが存在しないため、コンストラクタの呼び出し時に配列のデータを初期化できません。 – Mrgoog

答えて

0

アレイを初期化する必要があります。

private ArrayList<Object> array = new ArrayList<>(); 
関連する問題