【问题标题】:How can I initialise a dynamic nested object in kotlin?如何在 kotlin 中初始化动态嵌套对象?
【发布时间】:2018-07-05 20:39:39
【问题描述】:

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

顶层:

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

二级:

data class MyCustomClass2(var dynamicClass: DynamicClass)

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

使用 kotlin 最好的方法是什么?

【问题讨论】:

  • 你的目标是什么?
  • 在 MyCustomClass2 中,我希望能够更改传递给它的对象。

标签: generics interface kotlin


【解决方案1】:

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

interface IDynamicClass

class DynamicClass : IDynamicClass
class DynamicClass2 : IDynamicClass

data class MyCustomClass2(var dynamicClass: IDynamicClass)

这允许您使用任何实现IDynamicClass 接口的实例来实例化MyCustomClass2:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    相关资源
    最近更新 更多