我正在使用ArrayList处理朋友列表场景,我不确定我做错了什么。 " java.lang.NullPointerException"发生在我调用addFriend方法的那一刻,我似乎无法解决为什么会发生这种情况。请给我一些正确方向的提示!
public class Person {
private String name;
private ArrayList<String> friends;
public Person(String name) {
this.name = name;
this.friends = friends;
}
public String getName() {
return this.name;
}
public void addFriend(String friend) {
friends.add(friend);
}
public boolean hasFriend(String name) {
for(String friend : this.friends) {
if(name.equals(friend)) {
return true;
}
}
return false;
}
public String getFriends() {
String stringOfFriends=friends.toString();
return stringOfFriends;
}
public String unfriend(String friend) {
if (friends.contains(friend)) {
friends.remove(friend);
}
return friends.toString();
}
}
答案 0 :(得分:0)
您的构造函数必须初始化Arraylist:
$query = "SELECT title,time_strt,ampmstrt,time_end,ampmend
FROM addfunction
WHERE (NOW() + INTERVAL 15 MINUTE) BETWEEN time_strt AND time_end AND location = 'MAWAR ROOM'";
在您当前的版本中,您分配了ArrayList&#34; friends&#34;对自己。这意味着你基本上调用public Person(String name) {
this.name = name;
this.friends = new ArrayList<String>();
}
并且this.friends尚未初始化,因此NullpointerException。
答案 1 :(得分:0)
在构造函数中this.friends = friends; doesn't make sense.
像这样制作
public Person(String name,ArrayList<String> friends) {
this.name = name;
this.friends = friends;
}
然后将实际的arraylist传递给构造函数。
答案 2 :(得分:0)
您需要初始化阵列列表。像private ArrayList<String> friends = new ArrayList<String>();
或在构造函数中如下:
public Person(String name) {
this.name = name;
this.friends = new ArrayList<String>();
}