Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Parceler-在实现上注释与工厂的接口_Java_Android_Parcelable_Parceler - Fatal编程技术网

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

Java Parceler-在实现上注释与工厂的接口,java,android,parcelable,parceler,Java,Android,Parcelable,Parceler,在android上使用Parceler时,是否可以使用@Parceler注释接口,并让它在实现类中选择可能的@ParcelConstructor和@ParcelFactory注释 我们的目标是避免编写自定义ParcelConverter以在Parceler中重用通用字段映射,但是像实现=到@Parcel这样的东西似乎更倾向于将子类型映射到超类型(而不是相反): @Parcel//这可用于序列化**所有**实现。。。 公共接口MyIface{ 字符串getProperty1(); int getP

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

我们的目标是避免编写自定义ParcelConverter以在Parceler中重用通用字段映射,但是像
实现=
@Parcel
这样的东西似乎更倾向于将子类型映射到超类型(而不是相反):

@Parcel//这可用于序列化**所有**实现。。。
公共接口MyIface{
字符串getProperty1();
int getProperty2();
}
公共类MyImpl实现了MyIface{
@ParcelFactory//这可以用来反序列化接口吗?
公共静态MyImpl fromParcelerValues(最终字符串属性1,最终int属性2){
...
}
}

当然,如果有多个匹配映射,可能会有歧义,但我似乎找不到任何文档来说明如何让此功能在没有歧义的情况下工作。

您是正确的,Parceler仅对使用
@Parcel
实现
参数直接注释的类进行操作(现在已经贬值,不久将从api中删除)是为了其他目的


如果你给出一个具体的例子,说明你想解决的关于“通用字段映射”的问题,我会更新这个答案。

你能提供一个你感兴趣的通用字段映射的例子吗?我想说“我可以统一序列化这个接口的任何实例”,以及注册反序列化方法以用于该接口…但这些方法在该接口类型之外可能最有效。我如何说“Parceler,序列化此接口类型,然后查看以反序列化它”?“泛型映射”这意味着我想使用Parceler生成代码,而不是手工编写序列化代码。