来自基泛型类的实例的 parcel/un-parcel 列表

Parcel/un-parcel list of instances from base generic class

提问人:Bak Itzik 提问时间:8/20/2023 更新时间:8/30/2023 访问量:17

问:

我有一个基本的泛型抽象类,我们称之为类。Base<T>

此类由几个子类扩展,具有不同的类型。 假设我有 和 .T mDataclass Sub1 extends Base<byte []>class Sub2 extends Base<Object>

此外,我还有一个 instancesList,类型为 ,由 和 的实例复合而成。List<Base<T>>Sub1Sub2

  1. 我怎样才能将这个列表作为一个整体来包裹/取消包裹?
  2. 我应该在哪里实现接口?如果有的话,去哪儿了?ParcelableCREATOR
Android 泛型可 包裹

评论


答:

0赞 David Wasser 8/30/2023 #1

通常,您在具体类中实现 reader () 和 writer 在具体类中,而不是在抽象类中。CREATOR

当一个具体类的实例被写入 时,该具体类的名称也会自动写入 。当它被解包时,将读取具体类的名称,并调用相应的实例来创建该具体类的新实例。ParcelParcelCREATOR

在某些情况下,您需要在抽象类中实现 reader 和 writer。在这种情况下 有关更复杂的解决方案,请参阅可分包继承:抽象类 - 哪个 CREATOR?