相关疑难解决方法(0)

在Scala 2.8.0中迭代Java Map的新方法是什么?

如何scala.collection.JavaConversions取代Stack Overflow问题中的答案迭代Scala中的Java集合(它不起作用,因为"jcl"软件包已经消失了)和迭代使用Scala的Map(它在复杂的测试中对我不起作用)我将尝试归结并在此后发布).

后者实际上是一个Scala Map问题,但我想我需要知道这两个答案才能迭代java.util.Map.

language-features scala scala-2.8

36
推荐指数
1
解决办法
2万
查看次数

是否有针对Apache POI的Scala包装器?

我想使用Apache POI在Scala应用程序中读取/创建Excel文件.当然,我可以直接使用POI库,毕竟它是Java,但我想让Scala感觉到.那么是否有一个Scala包装器带来了Scala的感觉(使用隐式转换),即某种"Scala-POI-DSL"免费提供?

excel scala apache-poi

19
推荐指数
3
解决办法
9193
查看次数

如何在Scala的foreach中使用Java List?

我试图使用asInstanceOf将java列表转换为Scala列表但没有成功,因为我从android调用返回的列表是一个java列表.

val apList = (wfm.getScanResults:java.util.List[ScanResult])
Run Code Online (Sandbox Code Playgroud)

希望这样做,以便我可以使用(新的Scala)列表进行理解,因为它似乎不喜欢在这个构造中使用java列表给我一个错误.

value foreach is not a member of java.util.List[android.net.wifi.ScanResult]
    for (ap<-apList) { .... }
         ^
Run Code Online (Sandbox Code Playgroud)

他们是一种在for/foreach中使用Java列表而不强制它的方法吗?如果我必须胁迫,怎么样?as asInstanceOf以这种方式使用时调用ar/t错误.

java scala scala-java-interop

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

将Scala强制转换为通用类型(用于通用数值函数)

我正在尝试实现包装数学Java函数的泛型函数。为简单起见,我们可以假定Java函数(Java 7)接受一个参数并返回结果,均为java.lang.Double类型。当然,包装器函数应该带有一个参数和一个结果,它们都是通用类型但为数字类型A。问题是我无法在包装器函数中将结果强制转换回类型A。问题出在哪里/什么地方?

注意:(我是Scala的新手,并使用以下参考资料来解决该问题。)

变体A

package test

object mytest {
  def f[A](x: A)(implicit num: Numeric[A]): A = {
    val result = new java.lang.Double(num.toDouble(x))
    result.asInstanceOf[A]
  }

  def main(args: Array[String]) {
    // 'Some code'
  }
}
Run Code Online (Sandbox Code Playgroud)

“某些代码” A1

result val result = f(3)
Run Code Online (Sandbox Code Playgroud)

输出:

Exception in thread "main" java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Integer
    at scala.runtime.BoxesRunTime.unboxToInt(BoxesRunTime.java:105)
    at test.mytest$.main(test.scala:10)
    at test.mytest.main(test.scala)
Run Code Online (Sandbox Code Playgroud)

“某些代码” A2

println(f(3))
Run Code Online (Sandbox Code Playgroud)

输出:

3.0
Run Code Online (Sandbox Code Playgroud)

“某些代码” A3

println(f(3).getClass)
Run Code Online (Sandbox Code Playgroud)

输出:

int
Run Code Online (Sandbox Code Playgroud)

变体B

package test …
Run Code Online (Sandbox Code Playgroud)

generics casting scala scala-java-interop

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

在java中循环遍历scala ListBuffer

如果可能,我将如何从java中循环ListBuffer.ListBuffer的初始化(在scala中)

var newModVersions: ListBuffer[NewModVersionEntry] = new ListBuffer[NewModVersionEntry]()
Run Code Online (Sandbox Code Playgroud)

当前智能for循环(在java中)

for (VersionCheckHandler.NewModVersionEntry entry : XplosionCoreBL.newModVersions())
Run Code Online (Sandbox Code Playgroud)

java scala scala-java-interop listbuffer

3
推荐指数
1
解决办法
753
查看次数