Parceler - 在实现上注释与工厂的接口

Parceler - annotate interface with factories on an implementation

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

目标是避免编写自定义 ParcelConverter 以在 Parceler 中重新使用通用字段映射,但似乎 implementations= argument@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) {
    ...
  }
}

当然,如果有多个匹配的映射,可能会出现歧义,但我似乎无法找到任何有关使此功能正常工作的文档,即使没有任何歧义。

你是对的,Parceler 只在直接用 @Parcelimplementations 参数注释的 类 上运行(现在已经贬值,很快就会从 api) 用于其他用途。

如果您给出一个具体的例子来说明您希望在 "generic field mapping" 周围解决什么问题,我会更新这个答案。