当前位置: 首页 > 面试题库 >

可拆分对象中的Arraylist

都阳
2023-03-14
问题内容

到目前为止,我已经看到许多可拆分的示例,但是由于某种原因,当它变得更加复杂时,我无法使其正常工作。我有一个Movie对象,该对象实现了Parcelable。本书对象包含一些属性,例如ArrayLists。执行ReadTypedList时,运行我的应用程序会导致NullPointerException!我真的不在这里

public class Movie implements Parcelable{
   private int id;
   private List<Review> reviews
   private List<String> authors;

   public Movie () {
      reviews = new ArrayList<Review>();
      authors = new ArrayList<String>();
   }

   public Movie (Parcel in) {
      readFromParcel(in);
   }

   /* getters and setters excluded from code here */

   public void writeToParcel(Parcel dest, int flags) {

      dest.writeInt(id);
      dest.writeList(reviews);
      dest.writeStringList(authors);
   }

   public static final Parcelable.Creator<Movie> CREATOR = new Parcelable.Creator<Movie>() {

      public MoviecreateFromParcel(Parcel source) {
         return new Movie(source);
      }

      public Movie[] newArray(int size) {
         return new Movie[size];
      }

   };

   /*
    * Constructor calls read to create object
    */
   private void readFromParcel(Parcel in) {
      this.id = in.readInt();
      in.readTypedList(reviews, Review.CREATOR); /* NULLPOINTER HERE */
      in.readStringList(authors);
   }
}

评论类:

    public class Review implements Parcelable {
   private int id;
   private String content;

   public Review() {

   }

   public Review(Parcel in) {
      readFromParcel(in);
   }

   public void writeToParcel(Parcel dest, int flags) {
      dest.writeInt(id);
      dest.writeString(content);
   }

   public static final Creator<Review> CREATOR = new Creator<Review>() {

      public Review createFromParcel(Parcel source) {
         return new Review(source);
      }

      public Review[] newArray(int size) {
         return new Review[size];
      }
   };

   private void readFromParcel(Parcel in) {
      this.id = in.readInt();
      this.content = in.readString();
   }

}

如果有人能让我走上正确的道路,我将不胜感激,我已经花了很多时间寻找这个!

感谢韦斯利


问题答案:

reviews并且authors均为null。您应该首先初始化ArrayList。一种方法是链接构造函数:

public Movie (Parcel in) {
   this();
   readFromParcel(in); 
}


 类似资料:
  • 问题内容: 我正在尝试使我的对象可包裹。但是,我有自定义对象,这些对象具有ArrayList我制作的其他自定义对象的属性。 最好的方法是什么? 问题答案: 您可以在此处,此处(在此处获取代码)和此处找到一些示例。 您可以为此创建一个POJO类,但是您需要添加一些额外的代码来实现它Parcelable。看一下实现。 创建此类后,您可以Intent像这样轻松地传递此类的对象,并在目标活动中恢复该对象。

  • 我正在尝试拆分ArrayList中的每个对象,因为很多行都包含逗号(“,”)。每个对象都包含一个项和值(但并非所有对象都包含值): 这是我的一段代码: “CE”是主要的ArrayList 我的一段代码只使用逗号将其拆分为同一个ArrayList,另一个问题是如何查看没有“值”的对象并将空值添加到ArrayList。 谢谢各位。

  • 问题内容: 我为不涉及继承的单个类实现了Parcelable的实现。当遇到继承问题时,我很难找出实现接口的最佳方法。假设我知道了: 问题是,为B实现Parcelable接口的推荐方法是哪种(在A中?在两者中?如何?) 问题答案: 这是我最好的解决方案,很高兴听到有人对此有所想法。

  • 我已经在这里问了一个问题,但是这个问题只回答了字符串。我不能编辑它,因为那里已经有几个答案了。 现在,我明白了如何用那篇文章中给出的空格分割它。但是,我如何用像这样的自定义类对象分割它: 现在,我想在为false的地方拆分。例如,我有这个数组: 现在,如果将isAdult拆分为false,则如下所示: 那么,如何在java或静态编程语言中实现这一点

  • 我有一个pyspark dataframe,其中一列的格式如下: [{key1:value1},{key2:value2},{key3:value3},{key4:value4}] 让我们把它说成下面的专栏: 我希望将其转换为dataframe的列,其中列名为keyX,其内容为valueX,其中x=[1,4],如下所示: 我试过一些解决办法,但都不起作用。请求你分享任何想法或解决方案,如果你有。提

  • 本文向大家介绍浅谈Python中的可变对象和不可变对象,包括了浅谈Python中的可变对象和不可变对象的使用技巧和注意事项,需要的朋友参考一下 什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。 可变对象,该对象所指向的内存中的值可以被改变。变量(准确