相关疑难解决方法(0)

Kotlin和Immutable Collections?

我正在学习Kotlin,看起来我可能希望在明年使用它作为我的主要语言.然而,我不断得到相互矛盾的研究,Kotlin有或没有不可变的集合,我想弄清楚我是否需​​要使用Google Guava.

有人可以给我一些指导吗?它默认使用不可变集合吗?什么操作符返回可变或不可变的集合?如果没有,是否有计划实施它们?

kotlin

37
推荐指数
4
解决办法
1万
查看次数

Kotlin:在API中公开不可变列表

我是Kotlin的新手,我正在努力解决返回内部可变列表的不可变版本的问题.

我查看了以下' Kotlin:通过演员修改(不可变)列表,这是合法的吗?'并且理解不可变列表实际上只是只读视图,它们不公开修改方法.

我希望有一个暴露"不可变"列表的类,并且仍然希望利用Kotlins自动获取器(无需提供获取列表或列表成员的所有样板)

以下是一个坏主意(或将导致可能在将来的版本中阻止的问题)

class Foo {
  val names: List<String> = LinkedList;

  fun addName(name: String) {
    (names as LinkedList).add(name)
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望允许(例如):

  val foo = Foo;
  println(foo.names.size)
Run Code Online (Sandbox Code Playgroud)

但仍然阻止调用者修改类的内部(至少尽可能多).例如,删除元素或清除支持列表.

collections kotlin

5
推荐指数
1
解决办法
399
查看次数

标签 统计

kotlin ×2

collections ×1