我想将java代码与一些scala代码混合,但是当尝试将strs转换为Long Array时,会发生错误。 这是我的代码示例:
Error:(11, 58) type mismatch;
found : Array[scala.Long]
required: Array[java.lang.Long]
val ids:Array[java.lang.Long] = idsStr.split(",").map(s=>java.lang.Long.parseLong(s))
和错误信息:
image.frame = CGRectMake(0 , 0, super.view.frame.width, super.view.frame.height * 0.2)
提前感谢。
答案 0 :(得分:2)
使用java.lang.Long.parseLong
无法以任何方式帮助您获取java.lang.Long
,因为parseLong
是一个静态帮助方法,它返回一个原语(unwrapped){{1} }。因此,对于解析,您也可以使用Scala的long
。
您需要的是强制转换到.toLong
,以强制执行自动装箱:
java.lang.Long
或者,您可以使用val idsStr:String = "1,2,3";
val ids: Array[java.lang.Long] =
idsStr.split(",").map(_.toLong.asInstanceOf[java.lang.Long])
:
java.lang.Long