gpt4 book ai didi

Kotlin:返回只读集合/集合

转载 作者:行者123 更新时间:2023-12-02 13:36:16 24 4
gpt4 key购买 nike

我想返回一个属性的只读集/集合。Kotlin 中最好的惯用方式是什么?

在 Java 中我们可以使用 Collections.unmodifiableSet()

val property: MutableSet<String> = mutableSetOf()

get() {
// ?
}

最佳答案

如果你想从类的实现中改变集合,除了拥有两个不同类型的独立属性之外别无他法。

private val mutableProperty: MutableSet<String> = mutableSetOf()

val property: Set<String>
get() = mutableProperty

使用这种方法,您的接口(interface)将集合公开为只读类型,但是显式转换(或来自 Java 的用法)无论如何都允许改变集合。如果你想确保集合不被外部改变,你可以将它包装成一个不可修改的集合:

val property: Set<String>
get() = Collections.unmodifiableSet(mutableProperty)

可选地,创建一个防御性副本,以便调用者不会看到对可变集的更改,或者使用任何高效的第 3 方不可变集合实现。

关于Kotlin:返回只读集合/集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56407992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com