首页 文章

从Java类继承的数据类

提问于
浏览
0

我在Kotlin中有一个继承自Java类的数据类,它定义了一个带有1个参数的构造函数,

public BaseClass(String userSessionId) {
    this.userSessionId = userSessionId;
}

我的Kotlin类被定义为这个

class DerivedClass(
    userSessionId: String,
    var other: Other? = null
) : BaseClass(userSessionId) {

我无法将其定义为数据类,因为userSessionId,Kotlin要求它是数据类中的val或var . 但是,如果我这样做,那么Retrofit会抛出异常,因为有2个名为userSessionId的成员 . 有没有办法让一个数据类继承一个带有参数的构造函数的Java类?请注意,我无法更改基类 .

一种可能的解决方案是定义一个虚拟val以避免名称冲突,但这不太理想

data class DerivedClass(
    val dummy: String,
    var other: Other? = null
) : BaseClass(dummy) {

1 回答

  • 2

    您可以在Java中使用use the transient keyword来在序列化期间忽略字段,这可以通过在属性上使用@Transient注释在Kotlin中完成 .

相关问题