kotlin - Kotlin 接口(interface)中的 Gson SerializedName

标签 kotlin serialization interface gson data-class

有没有办法在 Kotlin 接口(interface)中使用 gson SerializedName 注释?

interface User {
   @SerializedName("user_id")
   val userId: String?
}

data class MainUser(override val userId: String? = null) : User

我知道注释可以在子类中,但这不是我想要的,因为有很多类扩展了该接口(interface)。

注1:
使用抽象类或开放类作为数据类的父类将解决此问题,但新问题将是父类中覆盖的 equals() 方法永远不会被调用(mainUser1 == mainUser2 永远不会检查抽象或开放中的 equls() 方法类用户)

最佳答案

我认为,接口(interface)不是拥有属性(或状态)的好地方。接口(interface)非常适合建立行为(功能)。我宁愿建议您使用抽象类来达到您的目的,它会按您的预期工作。

关于kotlin - Kotlin 接口(interface)中的 Gson SerializedName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57797027/

相关文章:

c# - 我应该将属性声明为接口(interface)还是基类(当它们同时实现时)?

go - 为 switch 中的类型实现逻辑或

java - 界面中的默认方法在命令提示符下运行,但在 eclipse 中不运行

lambda - Kotlin Any 和 lambda

android - 将一个 mutableList 从 Activity A 传递到 Kotlin 中的 Activity B。

java - Android Retrofit2 泛型方法

Java:在MySQL中高效存储Protobuf对象

c# - 将 List<T> 序列化/反序列化为 JSON

list - Kotlin 有像 Python 一样的 "enumerate"函数吗?

c# - 如何将接口(interface)反序列化为另一个程序集的内部类?