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

如何使自定义对象可拆分?

长孙宜
2023-03-14
问题内容

我正在尝试使我的对象可包裹。但是,我有自定义对象,这些对象具有ArrayList我制作的其他自定义对象的属性。

最好的方法是什么?


问题答案:

您可以在此处,此处(在此处获取代码)和此处找到一些示例。

您可以为此创建一个POJO类,但是您需要添加一些额外的代码来实现它Parcelable。看一下实现。

public class Student implements Parcelable{
        private String id;
        private String name;
        private String grade;

        // Constructor
        public Student(String id, String name, String grade){
            this.id = id;
            this.name = name;
            this.grade = grade;
       }
       // Getter and setter methods
       .........
       .........

       // Parcelling part
       public Student(Parcel in){
           String[] data = new String[3];

           in.readStringArray(data);
           // the order needs to be the same as in writeToParcel() method
           this.id = data[0];
           this.name = data[1];
           this.grade = data[2];
       }

       @Оverride
       public int describeContents(){
           return 0;
       }

       @Override
       public void writeToParcel(Parcel dest, int flags) {
           dest.writeStringArray(new String[] {this.id,
                                               this.name,
                                               this.grade});
       }
       public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
           public Student createFromParcel(Parcel in) {
               return new Student(in); 
           }

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

创建此类后,您可以Intent像这样轻松地传递此类的对象,并在目标活动中恢复该对象。

intent.putExtra("student", new Student("1","Mike","6"));

在这里,学生是从包中取消打包数据所需的密钥。

Bundle data = getIntent().getExtras();
Student student = (Student) data.getParcelable("student");

本示例仅显示String类型。但是,您可以打包任何所需的数据。试试看。



 类似资料:
  • 问题内容: 我有一个自定义类对象(下面是示例)。 使用:我想将所有子列表“合并”到一个大列表中。因此,我认为我需要使自定义类成为可迭代的。 这是我的自定义类的示例。 我实现了,但是似乎没有用。他们甚至没有被召集。 知道我做错了什么吗? 注意:使用Python 3.3 问题答案: 当您尝试遍历类实例时调用的是什么: 是在返回的对象上调用的内容(在python2.x上,不是,我一般都对它们都使用别名,

  • 我正在使用reverfit2、rxjava2和adapter-rxjava来实现我的http api调用。 如果我有很多api需要实现,并且每个单独的api实现都需要添加这两行: 我不想在每个api实现中添加它们。我想使用MyObservable作为api定义的结果类型。 我的想法如下所示: 我在https://github.com/square/reverfit/blob/master/reve

  • 如果它走路像鸭子,说话像鸭子,样子像鸭子,叫声也像鸭子,那它就是一只鸭子。 对于 Nutz Ioc 来说,它面对的配置文件就是层层嵌套的 "名值对集合",或者说是 Map 集合。 事实上,它是先把整个配置文件解析成 Map 再做判断的。 如果一个 Map 仅包括如下的键,则被认为是一个注入对象: type 对象类型 singleton 是否单例 scope 生命周期范围 events 监听事件 a

  • 我将springboot控制器与@RequestBody一起使用。我有以下json请求正文 我有一个对应的POJO 我有控制器就像 显然它不起作用,因为是请求中的字符串,而它在MyObject中是布尔值。我希望它有一个逻辑,所以如果在请求中,它将在MyObject中转换为布尔值。Spring有什么机制来实现这一点?

  • 问题内容: 我正在尝试将自己的自定义对象传递到包中: 我得到错误: 问题答案: 一种方法是让您的自定义对象实现Parcelable接口并使用

  • 我有以下对象需要存储在Cassandra中。我需要使用UDT还是有其他方法来存储对象。我需要最终使用存储库方法从spry-boot应用程序存储它。