我在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 回答
您可以在Java中使用use the transient keyword来在序列化期间忽略字段,这可以通过在属性上使用@Transient注释在Kotlin中完成 .