是否可以在kotlin中嵌套数据类?

时间:2019-10-07 16:32:07

标签: kotlin data-class

我正在尝试实现类似以下C语言的类似数据类定义:

struct A {
  int b;
  struct {
     int d;
  } c; 
};

根据Dmitry Jemerov的说法,这是可能的,但是他没有提供任何代码示例。 https://discuss.kotlinlang.org/t/is-there-a-reason-for-not-allowing-inner-data-classes/2526/5

  

您可以简单地使其嵌套在另一个类中。嵌套类可以是数据类。

如果它是真的应该怎么做?

1 个答案:

答案 0 :(得分:6)

否,Kotlin不支持此类匿名结构。

您都可以从字面上嵌套类:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>MyContextName</context-root>
</jboss-web>

或使用更通用的语法:

data class A(
    val b: Int,
    val c: C
) {
    data class C(
        val d: Int
    )
}

实际上,这里不需要“嵌套”。区别主要在于您访问data class C( val d: Int ) data class A( val b: Int, val c: C ) 类的方式:C或仅访问A.C