从Java类inheritance的数据类

我有一个Kotlin中的数据类inheritance自一个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会抛出一个exception,因为有两个成员userSessionId。 有一种方法来从一个Java类inheritance一个构造函数参数的数据类? 请注意,我不能更改基类。

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

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

您可以使用 Java中的transient关键字在序列化过程中忽略字段,这可以在Kotlin中使用@Transient上的@Transient注释来完成。