Java 用户模型中的ArrayList返回null

Java 用户模型中的ArrayList返回null,java,android,arraylist,nullpointerexception,Java,Android,Arraylist,Nullpointerexception,因此,在我创建的应用程序中,我有一个定义如下的用户类 public class User implements Serializable{ private int id; private String username; private String firstName; private String lastName; private String email; private String password; private String picture; private ArrayLis

因此,在我创建的应用程序中,我有一个定义如下的用户类

public class User implements Serializable{

private int id;
private String username;
private String firstName;
private String lastName;
private String email;
private String password;
private String picture;
private ArrayList<String> tags;
private double rating;
private Category favorite;
private boolean star;
private Location homeLocation;


public User(int id, String username, String firstName,String lastName,String picture, ArrayList<String> tags,double rating, Category favorite, boolean star,Location homeLocation,String email,String password) {
    this.id = id;
    this.username = username;
    this.firstName = firstName;
    this.lastName = lastName;
    this.picture = picture;
    this.tags = tags;
    this.rating = rating;
    this.favorite = favorite;
    this.star = star;
    this.homeLocation = homeLocation;
    this.email = email;
    this.password = password;

}

public int getId() {
    return id;
}

public String getUsername() {
    return username;
}

public String getFirstName() {
    return firstName;
}

public String getLastName(){ return lastName;}

public String getPicture(){ return picture;}

public ArrayList<String> getTags() {
    return tags;
}

public double getRating(){ return rating;}

public Category getFavorite(){ return favorite;}

public Boolean getStar(){ return star;}

public Location getHomeLocation(){return homeLocation;}

public String getEmail(){return email;}

public String getPassword(){return password;}

public void setId(int id){

    this.id = id;

}
无论创建用户对象时我传递了什么
ArrayList

我在android studio中还收到一条警告,称调用
user.getTags()
可能会产生npe。用户模型的其他部分都可以正常工作。我试图解决这个问题已经有一段时间了,但还没有找到任何与我的问题有关的东西,所以任何帮助都将不胜感激

试试看:

    Bundle bundle=new Bundle();
    bundle.putStringArrayList("tags",tags);
    bundle.putSerializable("User",user);
然后检索为:

tags = getArguments().getStringArrayList("tags");

您的解决方案不起作用的原因是ArrayList没有实现可序列化接口

从何处传递数据以及如何传递?当您试图从参数获取用户时,您可能会将其设置在某个位置并将其传递给此活动。如何将用户值设置到bundle在这种情况下,因为我从中检索用户数据的数据库还不包含标记信息,所以我只是尝试传递一些常量列表,以查看标记在配置文件页面上的外观。第一次在这里发布,如果我忘记添加任何相关内容,请告诉我。但基本上,当创建一个新用户时,它会在constants类中获取虚拟标记,并将它们添加到用户模型中。稍后,在概要文件片段中,我检索这个用户对象。每个其他变量,比如name、rating等,都工作得很好-只是标记给我一个npeSo,从参数中获取用户对象效果很好-虽然我传递了一个有效的arraylist,但它只为标记返回null。整个结构相当复杂,我不想粘贴大量的相关代码您获取nullpointerexception,因为您没有将任何对象传递到arraylist,却看不到代码这是一个猜测游戏。听起来这可能是问题所在!谢谢你的提示,我稍后会尝试一下,如果它最终能正常工作,我想它会成功的!
    Bundle bundle=new Bundle();
    bundle.putStringArrayList("tags",tags);
    bundle.putSerializable("User",user);
tags = getArguments().getStringArrayList("tags");