[当我尝试在sentMessages
中使用testClass
方法时,在NullpointerException
行中出现receiverUser.privateMessageList.add(privateMessage);
错误甚至我初始化了“ privateMessageList”列表。我该如何解决这个问题?
public class User {
private String userName;
private String password;
private String firstName;
private String lastName;
private String userType;
int topicCount = 0;
final int maxTopicNumber = 5;
ArrayList<PrivateMessage> privateMessageList;
public User(String userName, String password, String firstName, String lastName, String user_type) {
this.userName = userName;
this.password = password;
this.firstName = firstName;
this.lastName = lastName;
this.userType = "USER";
}
//private message section
public PrivateMessage sentMessage(String newMessage, User receiverUser) {
privateMessageList = new ArrayList<>();
PrivateMessage privateMessage = new PrivateMessage(this.userName, newMessage);
receiverUser.privateMessageList.add(privateMessage);
System.out.println("Message sent successfully!");
return privateMessage;
}
public void ListMessages(User receiverUser) {
System.out.println("Inbox of " + receiverUser);
for (int i = 0; i < receiverUser.privateMessageList.size(); i++) {
System.out.println(receiverUser.privateMessageList.get(i));
System.out.println("Sent by: " + this.userName);
}
}
[创建用户时,内联初始化列表
List<PrivateMessage> privateMessageList =new ArrayList<>();
由于将创建User
,因此将不会调用sentMessage
方法,因此不会创建privateMessageList
,因此调用列表将导致NPE。