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");