Java,生成动态对象名称

时间:2015-02-09 16:00:26

标签: java object dynamic

我试图生成一个动态对象名称,每次创建对象时都会更改这些名称。类似的东西:

第一个对象名称与"userName"类似,以下内容与"userName1"类似。

我是java的新手,我尝试初始化int count=0count++来执行此操作,但User类似乎不允许我这样做这样做userName+count。因此,无论如何我有可能去做吗?

我已经搜索了所有关于动态对象名称的类似帖子,但它似乎并不适用于我的情况。

修改

所以我建立了这个应用程序,允许用户创建帐户。 而且,现在我遇到了这个问题,每当我试图创建新帐户时,

Firebase会清除我之前插入的所有数据,并将其替换为当前插入的数据。

这是我的代码:

Main.java

name = (EditText) findViewById(R.id.edit_rName);
email = (EditText) findViewById(R.id.edit_rEmail);
password = (EditText) findViewById(R.id.edit_rPassword);

Button btnSubmit = (Button) findViewById(R.id.btn_rSubmit);
    btnSubmit.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

Firebase f = new Firebase("https://xxx.firebaseio.com/");

        Firebase usersRef = f.child("users");
        Map<String, User> users = new HashMap<String, User>();

        users.put(name.getText().toString(), new User(name.getText().toString(), password
                .getText().toString(), email.getText().toString()));

        usersRef.setValue(users);
    }
    });

User.java

public class User {
    private String fullName;
    private String password;
    private String email;

    public User(String fullName, String password,String email) {
        this.fullName = fullName;
        this.password = password;
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public String getFullName() {
        return fullName;
    }
}

1 个答案:

答案 0 :(得分:2)

如果您事先知道要创建的对象数量,则应使用数组;如果事先不知道,则应使用列表。

阵列:

String[] usernames = new String[4];
usernames[0] = "Alex";
usernames[1] = "Bob";
usernames[2] = "Carol";
usernames[3] = "David";
//usernames[4] = "Eliza"; // won't work, out of bounds!
System.out.println(usernames[2]); //prints Carol

列表(推荐)(首次导入java.util.ArrayList):

List<String> usernames = new ArrayList<String>();
usernames.add("Alex");
usernames.add("Bob");
usernames.add("Carol");
usernames.add("David");
usernames.add("Eliza");
System.out.println(usernames.get(2)); // prints Carol
usernames.set(2, "Carlos");
System.out.println(usernames.get(2)); // prints Carlos