Comment accéder à un public static ArrayList de différentes classes?

Supposons que j'ai une classe

    public class c1 {
        public static ArrayList<String> list = new ArrayList<String>();

        public c1() {
            for (int i = 0; i < 5; i++) {   //The size of the ArrayList is now 5
                list.add("a");
            }
        }
    }

Mais si j'ai accès à la même liste de tableaux dans une autre classe, j'ai une liste avec TAILLE = 0.

     public class c2 {
         public c2() {
             System.out.println("c1.list.size() = " + c1.list.size()); //Prints 0
         }
     }

Pourquoi est-ce qui se passe. Si la variable est statique, alors pourquoi une nouvelle liste en cours généré pour la classe c2? Comment puis-je être sûr d'obtenir la même liste de tableaux si j'ai accès dans une autre classe?

/****Code révisé********/

     public class c1 {
        public static ArrayList<String> list = new ArrayList<String>();

        public static void AddToList(String str) {       //This method is called to populate the list 
           list.add(str);
        }
    }

Mais si j'ai accès à la même liste de tableaux dans une autre classe, j'ai une liste avec TAILLE = 0, indépendamment de combien de fois j'ai appelé AddToList méthode.

     public class c2 {
         public c2() {
             System.out.println("c1.list.size() = " + c1.list.size()); //Prints 0
         }
     }

Comment puis-je m'assurer que même les changements qui apparaissent lorsque j'utilise la liste de tableaux dans une autre classe?

  • Utilisation Statique initialiser le bloc d'initialiser c1
InformationsquelleAutor Vijender | 2013-03-31