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

Android中的可拆分和继承

海景曜
2023-03-14
问题内容

我为不涉及继承的单个类实现了Parcelable的实现。当遇到继承问题时,我很难找出实现接口的最佳方法。假设我知道了:

public abstract class A {
    private int a;
    protected A(int a) { this.a = a; }
}

public class B extends A {
    private int b;
    public B(int a, int b) { super(a); this.b = b; }
}

问题是,为B实现Parcelable接口的推荐方法是哪种(在A中?在两者中?如何?)


问题答案:

这是我最好的解决方案,很高兴听到有人对此有所想法。

public abstract class A implements Parcelable {
    private int a;

    protected A(int a) {
        this.a = a;
    }

    public void writeToParcel(Parcel out, int flags) {
        out.writeInt(a);
    }

    protected A(Parcel in) {
        a = in.readInt();
    }
}

public class B extends A {
    private int b;

    public B(int a, int b) {
        super(a);
        this.b = b;
    }

    public static final Parcelable.Creator<B> CREATOR = new Parcelable.Creator<B>() {
        public B createFromParcel(Parcel in) {
            return new B(in);
        }

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

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel out, int flags) {
        super.writeToParcel(out, flags);
        out.writeInt(b);
    }

    private B(Parcel in) {
        super(in);
        b = in.readInt();
    }
}


 类似资料:
  • 问题内容: 到目前为止,我已经看到许多可拆分的示例,但是由于某种原因,当它变得更加复杂时,我无法使其正常工作。我有一个Movie对象,该对象实现了Parcelable。本书对象包含一些属性,例如ArrayLists。执行ReadTypedList时,运行我的应用程序会导致NullPointerException!我真的不在这里 评论类: 如果有人能让我走上正确的道路,我将不胜感激,我已经花了很多时

  • 问题内容: 我有一个名为的字符串,其形式像这样 。 我想使用:分隔符。 这样一来,单词将被拆分成自己的字符串,并将成为另一个字符串。 然后我只想使用2种不同的字符串来显示该字符串。 解决这个问题的最佳方法是什么? 问题答案: 你可能要删除第二个字符串的空格: 如果要用特殊字符(例如dot(。))分割字符串,则应在点之前使用转义字符\ 例: 还有其他方法可以做到这一点。例如,你可以使用类(来自):

  • 我想打破一个字符串Java使用数字作为分隔符,但保留数字。一些研究表明,从String中使用分裂方法()是合适的,但是我不明白如何做到这一点。为了进一步解释我的问题,我将使用一个例子: 通过像下面的示例一样调用方法split,而不使用lookahead和lookahead,我得到了预期的输出 但如果我尝试使用“前瞻”来实现这一点: 通过使用lookback,我得到了一个异常: 线程“main”ja

  • 我正在使用lz4压缩并将数据写入hive表,该表有20个文件,每个文件在HDFS上都是15G,并且该表的每个文件名都以lz4结尾,例如,。 当我从这个表中运行select count(1)时,它只启动了20个映射器,这意味着lz4 splittable不能生效。 据说lz4支持针对文本文件的可拆分性,所以我想问一下我应该做什么或其他步骤来实现这一点。

  • FAQs in section [21]: [21.1] 我应该隐藏基类的公有成员函数吗? [21.2] Derived* —> Base* 可以很好地工作; 为什么 Derived** —> Base** 不行? [21.3] parking-lot-of-Car(停车场)是一种 parking-lot-of-Vehicle(交通工具停泊场)吗? [21.4] Derived数组是一种 Base

  • 我有以下类层次结构 改装日志: 但是当我在请求参数中发布事件实例时,只有抽象类被序列化。 改型Java接口: 我还注意到,在第二种情况下,字段序列化名称是,但它应该是!这使我认为改型对使用的与对参数使用的不同... 分级依赖关系 REST客户端