我在Kotlin本机项目上使用kotlinx.serialization
,为我的模型定义了Super class
,所有模型都从此扩展。
我定义了一个名为function
的{{1}}来序列化模型中所有类模型都具有的变量和字段。
toJSON()
然后我创建了一个子类
@Serializable
open class Model {
fun toJSON(): String = JSON.stringify(this);
}
但是当我调用class Me : Model() {
var name:String = "Jack";
}
时,IDE会向我发出警告:
此声明是实验性的,必须使用“ @ kotlinx.serialization.ImplicitReflectionSerializer”或“ @UseExperimental(kotlinx.serialization.ImplicitReflectionSerializer :: class)”标记
我注意了,在不起作用时使用了JSON.stringify(this)
注释。
我的问题在哪里?
答案 0 :(得分:1)
对此进行了讨论here。这是您正在使用的特定过载,仍在试验中。因此,您的选择要么是使用其他重载(它需要一个序列化器),要么使用错误消息中提到的注释之一。如果您查看我链接的问题的答案(及其后的评论),您会发现它涉及使用#!/bin/bash
a="12 11 45 20 67"
abc=' ' read -r -a arr <<< "$a"
b=0
for i in ${arr[@]}; do
let b+=$i
done
echo "Total: $b"
以及应在何处使用。