【发布时间】:2017-12-15 06:59:58
【问题描述】:
我是 Kotlin 的新手,正在努力解决返回内部可变列表的不可变版本的问题。
我查看了以下“Kotlin: Modifying (immutable) List through cast, is it legitimate?”并了解不可变列表实际上只是只读视图,不公开修改方法。
我想要一个公开“不可变”列表的类,并且仍然想利用 Kotlins 自动获取器(无需提供获取列表或列表成员的所有样板)
以下是一个坏主意(或者它会导致可能在未来版本中被阻止的问题)
class Foo {
val names: List<String> = LinkedList;
fun addName(name: String) {
(names as LinkedList).add(name)
}
}
我希望允许(例如):
val foo = Foo;
println(foo.names.size)
但仍然阻止调用者修改类的内部(至少尽可能)。例如删除元素或清除支持列表。
【问题讨论】:
标签: collections kotlin