Kotlin 中的类,具有可选成员



我想在 Kotlin 中设计一个有多个成员的类。在任何时候,此类的任何对象都只有几个填充成员,其余成员均为 null。我还想将其转换为 json,其中空成员根本不存在。我想构造这个对象,这样我就不必为我填充的每个成员传递 null。例如:

class Foo{
var a,
var b,
var c,
var d..
.
.
//and so on
}

我想将此对象构造为

Foo(a="a", c="c", x="x")

所有其他成员都应为 null。

当我为此构建 JSON 时,它应该看起来像:

{
"a"="a",
"c"="c",
"x"="x"
}

另外,我将从Java创建这个对象。是否有一些解决方法可以帮助我实现这一目标?

data class Foo(var a: String? = null,
var b: String? = null)

并创建:

Foo(b = "")

Kotlin 支持默认初始化。请注意,这需要构造函数,对于这么多变量,您应该使用主构造函数。由于你想要 null,它必须是可为 null 的类型,因此:

class Foo(
var a: String? = null,
var b: String? = null,
var c: String? = null,
var d: String? = null
// and so on
)

使用默认值,您现在可以选择传递的内容。 请注意,这仅适用于 Kotlin;如果您从 Java 创建对象,则必须传递 all。这同样适用于命名参数,这就是为什么这只能从 Kotlin 中工作。由于您没有命名参数,因此您将被迫为所有未填充的变量传递参数。

最新更新