如何在Kotlin中初始化动态嵌套对象?

时间:2018-07-05 20:39:40

标签: generics interface kotlin

我正在寻找一个对象结构,该结构具有要更改的动态类:

最高级别:

data class TopLevel(
  var myCustomClass1: MyCustomClass1,
  var myCustomClass2: MyCustomClass2)

第二级:

data class MyCustomClass2(var dynamicClass: DynamicClass)

DynamicClass是我要更改的那个。例如,我可能想在DynamicClass中使用DynamicClass2MyCustomClass2

使用Kotlin做到这一点的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

由于Kotlin是一种静态类型的语言,因此您需要找到某种方法来描述您的抽象类,例如通过使用界面:

interface IDynamicClass

class DynamicClass : IDynamicClass
class DynamicClass2 : IDynamicClass

data class MyCustomClass2(var dynamicClass: IDynamicClass)

这使您可以使用实现MyCustomClass2接口的任何实例来实例化IDynamicClass

MyCustomClass2(DynamicClass())
MyCustomClass2(DynamicClass2())