scala.Array [Long]不符合预期类型scala.Array [java.lang.Long]

时间:2018-03-05 10:50:54

标签: java scala

我想将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)

提前感谢。

1 个答案:

答案 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