1

クラスを作成してArrayListに入れようとしています

import java.util.*;

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

    public UserGroup() 
    {

    }

    public void addSampleData() 
    {
        for (int i = 1; i < 11; i++) 
        {
            String iConvert = "User" + Integer.toString(i);
            System.out.println(iConvert);

            userList.add(iConvert(iConvert, iConvert, iConvert));
        }

    }
}

ループ内で文字列を使用して、各オブジェクトと呼ぶものを変更しようとしていました

以下は、コンストラクターが iConverts(iConverts、iConverts、iConverts) の理由である 3 つの文字列を必要とする User クラスです。

public class User {

    /*
    * contains a username, usertype and names (constructor uses these)
    * methods within getUsername, getUserType, getName and setUserType
    */

    String username;
    String userType;
    String name;

    public User(String username, String userType, String name)
    {

    }

    protected String getUsername()
    {

        return username;
    }

    protected String getUserType()
    {

        return userType;
    }

    protected String getName()
    {

        return name;
    }

    protected void setUserType(String newType)
    {
        userType = newType;
    }

}
4

5 に答える 5

2

にオブジェクトを追加すると、次のArrayListように取得できます。

userList.get(0);
userList.get(1);
userList.get(2);

したがって、名前を変更する必要はありません。その名の通り、それはクラスとは呼ばれず、オブジェクトを に追加していArrayListます。代わりに、このようなことをしてみてください。

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

}
于 2013-10-28T18:13:53.050 に答える
1

User オブジェクトを保持する ArrayList を作成したので、実行しようとしています

UserList.add(iConvert(iConvert, iConvert, iConvert));

意味がありません。

おそらく代わりにこれを行いたいでしょう (User オブジェクトにコンストラクターのパラメーターとして 3 つの文字列がある場合):

UserList.add(new User(iConvert, iConvert, iConvert));
于 2013-10-28T18:17:16.647 に答える
1

まず、String は不変型であることを覚えておいてください。一度インスタンス化すると、それを変更することはできません。次に、コンストラクターは 1 回しか呼び出せません。String コンストラクターをもう一度呼び出そうとしているように見えます。次に、Generics を使用して、リストが保持するオブジェクトの型を宣言しているので、User型だけが含まれていることを確認する必要があります。そうしないと、コンパイラからエラーが返されます。

だからあなたは次のようなものが必要です

ArrayList<User> userList = new ArrayList<User>();
for(int i=0; i<10; i++){
   User user = new User("User" + i);
   userList.add(user);
}
于 2013-10-28T18:22:37.877 に答える
1

オブジェクトはデフォルトで一意の ID を取得しますが、心配する必要はありません。

コードを次のように変更するだけです。

userList.add(new User(iConvert));

User クラスのコンストラクターを次のように変更します。

public User(String iConvert) {...}
于 2013-10-28T18:21:13.790 に答える
0

これは機能しません

        userList.add(iConvert(iConvert, iConvert, iConvert));

iConvert は文字列インスタンスであり、メソッドであるかのように呼び出そうとしています。

于 2013-10-28T18:13:29.023 に答える