在Java中使用Object作为数组

时间:2013-02-10 09:03:14

标签: java

我想创建一个名为User的类的数组对象,当我单击一个复选框时,应该创建该类的新对象。当我运行并单击复选框错误时: 线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException

public class User
{
    public int user_amt;
    int user_location;
    String user_name;
    private boolean user_isSelected()
    {
            return true;
    }
    int user_id;
User()
{
    user_amt = 0;
    user_location = 0;
    user_name = "NUL";
    user_id = 0;
    user_isSelected();

}

}

class main()
{
 int users_active;
 private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {

        users_active++;
        User[] user = new User();

    }
}

3 个答案:

答案 0 :(得分:1)

试试:

User[] user = new User[5];
user[0] = new User();

答案 1 :(得分:0)

您的代码的问题在于您正在创建引用数组,但必须在堆上创建每个引用。

所以User[] user = new User[5]< - 创建5个引用

user[0] = new User();< - 在堆上创建1个User类型的对象,并将其分配给user[0]引用。

答案 2 :(得分:0)

以下是完全错误的。

User[] user = new User();

User[] user是一个User数组,而new User()是User的单个实例。

其次,当您使用C ++,C#或Java进行编码时,需要放弃所有关于visual basic的知识,在这需要在向其添加成员之前预先分配数组的大小。

你做不到

User[] users;
for(int i=0; i<10; i++){
  users[i] = new User();
}

你必须

User[] users = User[10];
for(int i=0; i<10; i++){
  users[i] = new User();
}

User[] users = {
  new User(), new User(), new User(), new User(), new User(), 
  new User(), new User(), new User(), new User(), new User()
}  

这就是为什么你应该考虑使用ArrayList,因为它们是可扩展的。虽然阵列不可扩展。

List<User> users = new ArrayList<User>();
for(int i=0; i<10; i++){
  users.add(new User());
}

要获得第5名成员,

users.get(4);
相关问题