2017-10-23 1 views
-1

ここにコードのコピーがあります。ArrayListuserListaddSampleData()メソッドで作成されたサンプルデータを入力したいと考えています。私はそのクラスの別のメソッドでコンストラクタで初期化したArrayListにアクセスするにはどうすればよいですか?

UserGroup(){ 
    ArrayList<User> userList = new ArrayList<User>(); 
} 

public void addSampleData() { 
    User user1 = new User("U1", "admin", "a"); 
    User user2 = new User("U2", "admin", "b"); 
    User user3 = new User("U3", "editor", "c"); 
    User user4 = new User("U4", "editor", "d"); 
    User user5 = new User("U5", "editor", "e"); 
    User user6 = new User("U6", "user", "f"); 
    User user7 = new User("U7", "user", "g"); 
    User user8 = new User("U8", "user", "h"); 
    User user9 = new User("U9", "user", "i"); 
    User user10 = new User("U10", "user", "j"); 

    for(int i = 1; i<11; i++) { 
     userList.add(getUser(i)); 
    } 
} 

答えて

4

コンストラクタでローカルに宣言する代わりに、クラスのフィールドにする(クラススコープで宣言する)ようにします。

class UserGroup { 
    ArrayList<User> userList; 

    UserGroup(){ 
     userList = new ArrayList<User>(); 
    } 

    public void addSampleData() { 
     // ... 
     for(int i = 1; i<11; i++) { 
      userList.add(getUser(i)); 
     } 
    } 
} 
+0

いくつかの例を追加できますか?初心者の方には非常に役立つと思います。 – Zabuza

+0

もっと良い、素晴らしい! – Zabuza

+0

私はOPではないので、アップまたはダウン投票のみできます。あなたはOPに言及して、その質問にコメントを移すことができます。 – Zabuza

0

クラス内にuserListを宣言します。

次に、単にコンストラクタにuserList = new ArrayList<User>();と言ってください。

関連する問題