2

在android上使用Parceler时,是否可以使用注释接口@Parceler并让它在实现类中获取可能@ParcelConstructor@ParcelFactory注释?

目标是避免编写自定义ParcelConverter以在 Parceler 中重用通用字段映射,但似乎implementations= 参数to@Parcel更倾向于将子类型映射到超类型(而不是相反):

@Parcel  // can this be used to serialize **all** implementations ...
public interface MyIface {

  String getProperty1();
  int getProperty2();
}

public class MyImpl implements MyIface {
  @ParcelFactory  // and can this be used to deserialize the interface?
  public static MyImpl fromParcelerValues(final String property1, final int property2) {
    ...
  }
}

当然,如果有多个匹配的映射可能会有歧义,但即使没有任何歧义,我似乎也找不到任何关于让这个功能工作的文档。

4

1 回答 1

0

您是对的,Parceler 仅对直接使用注释的类进行操作,@Parcel并且implementations参数(现在已贬值,很快将从 api 中删除)用于其他用途。

如果您给出一个具体示例来说明您希望围绕“通用字段映射”解决什么问题,我将更新此答案。

于 2016-05-13T04:08:20.120 回答