我在做一些琐碎的事情时遇到了可怕的事情:在 Scala 中创建org.apache.commons.math3.distribution.EnumeratedDistribution的新实例。最好我能做出以下应该工作......
import org.apache.commons.math3.distribution.EnumeratedDistribution
import org.apache.commons.math3.util.Pair
val p = new Pair(1L, 0.5)
val q = new Pair(2L, 0.5)
val mapping = new java.util.ArrayList[Pair[Long, Double]]()
mapping.add(p)
mapping.add(q)
val dist = new EnumeratedDistribution(mapping)
...这失败并在 REPL 中出现以下错误...
scala> val dist = new EnumeratedDistribution[Long](mapping)
<console>:10: error: type mismatch;
found : java.util.ArrayList[org.apache.commons.math3.util.Pair[Long,scala.Double]]
required: java.util.List[org.apache.commons.math3.util.Pair[Long,java.lang.Double]]
val dist = new EnumeratedDistribution[Long](mapping)
我的印象java.util.List
是抽象的,因此必须使用类似的东西ArrayList
。我确信这是微不足道的。想法?