【问题标题】:Apache collections UnmodifiableSet to scala immutable SetApache 集合 UnmodifiableSet 到 scala 不可变集合
【发布时间】:2013-11-15 09:15:15
【问题描述】:

当我得到这个时我该怎么办?

java.lang.ClassCastException: org.apache.commons.collections.set.UnmodifiableSet 
    cannot be cast to scala.collection.immutable.Set

【问题讨论】:

标签: scala scala-java-interop apache-commons-collection


【解决方案1】:

你不能在它们之间进行转换,但是你应该可以使用 scala.collection.JavaConverters 来转换 java.util.Set (UnmodifiableSet 实现了这个) => mutable.Set,然后调用 .toSet 转换成一个不可变的.Set,例如:

import org.apache.commons.collections.set.UnmodifiableSet
import scala.collection.JavaConverters._
val u = new UnmodifiableSet()
val s = u.asScala.toSet
println(s)

见: http://www.scala-lang.org/api/current/index.html#scala.collection.JavaConverters

(或者使用 JavaConversions 和 asScala 可以隐式发生 - 通常显式更好)

【讨论】:

    猜你喜欢
    • 2011-11-24
    • 2012-01-07
    • 2013-08-30
    • 2016-07-23
    • 2023-03-18
    • 1970-01-01
    • 2012-02-12
    • 2017-05-21
    • 1970-01-01
    相关资源
    最近更新 更多