Java 简单数组问题

Java 简单数组问题,java,list,arrays,Java,List,Arrays,我有这门课: public class User { public User(String nickname, String ipAddress) { nickname = nickname.toLowerCase(); System.out.println(nickname + " " + ipAddress); } } 以及另一个创建包含用户对象的数组的类 class UserMananger { static User us

我有这门课:

public class User {


    public User(String nickname, String ipAddress) {

        nickname = nickname.toLowerCase();
        System.out.println(nickname + " " + ipAddress);
    }
}
以及另一个创建包含用户对象的数组的类

class UserMananger {

    static User user;
    static User user2;
    static User user3;

    static ArrayList allTheUsers;

       public void UserManager() {

           allTheUsers = new ArrayList();

           user = new User("Slavisha", "123.34.34.34");
           user2 = new User("Zare", "123.34.34.34");
           user3 = new User("Smor", "123.34.34.34");

           allTheUsers.add(user);
           allTheUsers.add(user2);
           allTheUsers.add(user3);


       }
}
我要做的是调用一个main方法,该方法将为我提供列表中以User格式键入的所有元素:“昵称ipAddress”

例如,这个主要方法应该为我提供如下信息: 斯拉维沙123.34.34.34
但事实并非如此。出现了什么问题?

第一个问题:您没有在
User
中重写
toString()
。例如:

@Override
public String toString() {
    return nickname + " " + ipAddress;
}
第二个问题:每次创建
UserManager
的实例时,您都在更改静态变量的值。。。但是,除非创建了
UserManager
的实例,否则您不会执行任何操作。一个选项是将UserManager的构造函数更改为静态初始值设定项:

static {
    // Initialize the static variables here
}
第三个问题:您没有告诉我们您的
main
方法在哪里,因此我们不知道它是否有权访问
所有用户


第四个问题:“它不是”并不能很好地描述你的问题。总是说似乎正在发生的事情:你有例外吗?只是打印错误吗?

第一个问题:您没有在
User
中重写
toString()
。例如:

@Override
public String toString() {
    return nickname + " " + ipAddress;
}
第二个问题:每次创建
UserManager
的实例时,您都在更改静态变量的值。。。但是,除非创建了
UserManager
的实例,否则您不会执行任何操作。一个选项是将UserManager的构造函数更改为静态初始值设定项:

static {
    // Initialize the static variables here
}
第三个问题:您没有告诉我们您的
main
方法在哪里,因此我们不知道它是否有权访问
所有用户


第四个问题:“它不是”并不能很好地描述你的问题。总是说似乎正在发生的事情:你有例外吗?它只是打印了错误的东西吗?

我也这么做了,但是当我编译类用户管理器时,出现了一个异常:“线程中的异常”main“java.lang.NullPointerException位于UserMananger.main(UserManager.java:29)java Result:1”对-这可能是因为您没有调用构造函数,所以初始化代码永远不会运行。我也这样做了,但是当我编译类User Manager时,出现了一个异常:“线程中的异常”main“java.lang.NullPointerException位于UserMananger.main(UserManager.java:29)java Result:1“正确-这是因为您没有调用构造函数,因此,初始化代码永远不会运行。