Kotlin - 一种将可变列表公开为不可变列表的优雅方式

标签 kotlin

我有一个类,我希望能够在其中修改列表,但在外部我希望列表是不可变的;例如……

class Foo {
    val items: List<String> get() = mutableItems
    private val mutableItems: MutableList<String> = mutableListOf()
}

有更好的表达方式吗?

最佳答案

没有,但他们正在开发一些可能会出现在 Kotlin future 版本中的东西。建议的语法如下所示:

private val items: MutableList<String> = mutableListOf()
    public get(): List<String>

This was presented by the language design lead in a talk about possible future features of Kotlin.

有点迂腐,你公开了一个只读的列表,而不是一个不可变的列表。

关于Kotlin - 一种将可变列表公开为不可变列表的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66923228/

相关文章:

java - Dagger 2 在 Application 类中构建组件的良好实践

android - 如何使用 koin 在 vi​​ewmodel 中注入(inject) Room

android-gradle-plugin - Kotlin 反射(reflect) proguard SmallSortedMap

android - “ignoreKotlinNullability”实际做什么?

android - AndroidX Core v1.5.0-alpha02 中的 WindowInsetsCompat

android - 多次调用分页库中的回调

intellij-idea - 我如何知道 Kotlin 中的推断类型?

android - 在 NavDirections 中找不到 safeargs 参数

java - Android 从 Kotlin 调用非静态 Java 方法

Kotlin 中的 Wicket NumberTextField 在提交时抛出 ClassCastException