Kotlin 接口中的 Gson SerializedName

Ali*_*ani 5 serialization interface gson kotlin data-class

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

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

data class MainUser(override val userId: String? = null) : User
Run Code Online (Sandbox Code Playgroud)

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

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

小智 2

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