我想使用kotlin/java代码将现有的kotlin/java集合转换为scala不可变集合。
scala.collection.JavaConversions。asScalaSet只给我一个可变集合。
必须这样做,因为我继承了另一个repo上的scala类,并且不想将scala包和插件插入到我的项目中。
一个简单的答案是:你不能。Java/Kotlin集合本质上是可变的,而Scala不可变集合在内部有一个完全不同的实现,所以它们不允许自由地从一种转换到另一种。
现在您有两个选择:首先,您可以使用更通用的接口(例如scala.collection.Set
),或者,第二,您可以创建一个新的不可变的Scala集合并将所有元素放入其中:scala.collection.immutable.HashSet().concat(yourExistingCollection)