moshi-sealed Kotlin密封类序列化适配器
Kotlin 密封类的序列化老是让人头疼?用过 Moshi 的你应该知道,它原生可不怎么待见密封类。而 moshi-sealed 就是来帮你省事儿的。它有两个路子:反射,适合图快,写少点代码就能跑;还有代码生成,适合追求性能的同学,编译时就搞定一切,运行更轻快。
moshi-sealed的核心逻辑藏在一个 Gradle 项目里,结构清晰,包含了适配器实现、代码示例、构建脚本,还有一堆单测。你可以按着例子一步步改,马上能跑起来。配置完后,密封类写起来比用枚举还爽,尤其适合那些状态码类型的接口模型。
像下面这种:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val message: String) : Result()
}
直接用 Moshi 序列化,基本得靠你手写类型字段和判断逻辑,费事又不优雅。但加上 moshi-sealed
,只需要简单配置,自动帮你搞定序列化字段注入和类型解析,挺省心的。
两个建议:
1. 项目小或原型阶段可以用反射方式,方便快捷;
2. 上生产建议用代码生成,尤其多层嵌套类、接口复杂时,性能提升蛮。
如果你在用 Moshi,又刚好碰上密封类的多态序列化,不妨把这个库拉下来试试。资源在moshi-sealed-master
文件夹里,结构简单,容易上手。配套示例也挺清楚,看一眼就明白怎么用。
另外,如果你还不太熟 Kotlin 的密封类或者对反射、代码生成感兴趣,可以看看这些相关文章:
,moshi-sealed是一个比较实用的工具类库,适合你在 Kotlin + Moshi + 多态模型时用上,能省不少力气。
moshi-sealed.zip
预估大小:29个文件
moshi-sealed-master
文件夹
.gitignore
1KB
gradle
文件夹
wrapper
文件夹
gradle-wrapper.jar
54KB
gradle-wrapper.properties
202B
dependencies.gradle
2KB
gradle-mvn-push.gradle
7KB
README.md
2KB
build.gradle
2KB
...
89.12KB
文件大小:
评论区