我有这堂课:
public class User {
public User(String nickname, String ipAddress) {
nickname = nickname.toLowerCase();
System.out.println(nickname + " " + ipAddress);
}
}
另一个创建包含User对象的数组的类。
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的所有元素:“nickname ipAddress”
public static void main(String args[]) {
System.out.println(allTheUsers.get(0));
}
例如,这个主要方法应该给我这样的东西: Slavisha 123.34.34.34 但事实并非如此。什么似乎是问题?
答案 0 :(得分:4)
第一个问题:您没有在toString()
中覆盖User
。例如:
@Override
public String toString() {
return nickname + " " + ipAddress;
}
第二个问题:每次创建UserManager
的实例时,您都会更改静态变量的值...但是您没有做任何事情除非一个实例UserManager
已创建。一种选择是将UserManager的构造函数更改为静态初始值设定项:
static {
// Initialize the static variables here
}
第三个问题:您尚未向我们展示main
方法的位置,因此我们不知道它是否可以访问allTheUsers
。
第四个问题:“它没有”不能很好地描述你的问题。总是说出现在发生的事情:你得到例外吗?它只是印错了吗?