arrayList中的空指针异常错误添加声明

问题描述 投票:0回答:1

[当我尝试在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);
        }
    }
java arraylist nullpointerexception
1个回答
0
投票

[创建用户时,内联初始化列表

  List<PrivateMessage> privateMessageList =new ArrayList<>();

由于将创建User,因此将不会调用sentMessage方法,因此不会创建privateMessageList,因此调用列表将导致NPE。

© www.soinside.com 2019 - 2024. All rights reserved.