我正在寻找一个对象结构,该结构具有要更改的动态类:
最高级别:
data class TopLevel(
var myCustomClass1: MyCustomClass1,
var myCustomClass2: MyCustomClass2)
第二级:
data class MyCustomClass2(var dynamicClass: DynamicClass)
DynamicClass
是我要更改的那个。例如,我可能想在DynamicClass
中使用DynamicClass2
或MyCustomClass2
。
使用Kotlin做到这一点的最佳方法是什么?
答案 0 :(得分:2)
由于Kotlin是一种静态类型的语言,因此您需要找到某种方法来描述您的抽象类,例如通过使用界面:
interface IDynamicClass
class DynamicClass : IDynamicClass
class DynamicClass2 : IDynamicClass
data class MyCustomClass2(var dynamicClass: IDynamicClass)
这使您可以使用实现MyCustomClass2
接口的任何实例来实例化IDynamicClass
:
MyCustomClass2(DynamicClass())
MyCustomClass2(DynamicClass2())