@RawValue注解不适用于目标值参数。

71

我正在尝试将一个数据类进行Parcelize。 它包含一个参数:

var tokenType: Any? = null

对于这个变量,编译器在编译时会抱怨:

Type is not directly supported by Parcelize. 
Annotate the parameter with @RawValue if you want it to be serialized via 
writeValue()

虽然这个错误本身很容易理解,但当我像这样添加@RawValue时:

@RawValue var tokenType: Any? = null

它报错:

This annotation is not applicable to the target value parameter

你有什么方法可以处理这个问题吗?

1个回答

169

我从 Kotlang 社区得到了解决这个问题的答案。答案是你不能注释变量本身,而是必须注释其类型。

因此,以以下方式注释可以消除错误:

 var tokenType: @RawValue Any? = null

虽然不要忘记手动编写此属性的序列化器/反序列化器,因为它不会自动完成。


6
看完这个答案后,我立刻意识到了目标注释的含义,谢谢! - wax911
9
你如何为 Any 类型编写序列化器/反序列化器? - Beast77
1
@Tarun,你为什么要使用Parcelize呢? - frapeti
1
仍在工作中...非常感谢 - Tushar Lathiya
你可以在KotLang的帖子中添加一个链接,以帮助其他人获得更多的上下文信息。 - KE Keronei
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接