繁体   English   中英

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

[英]scala.Array[Long] doesn't conform to expected type scala.Array[java.lang.Long]

我想将Java代码与一些Scala代码混合使用,但是当尝试将strs转换为Long Array时,发生了错误。 这是我的代码示例:

val idsStr:String = "1,2,3";
val ids:Array[java.lang.Long] = idsStr.split(",").map(s=>java.lang.Long.parseLong(s))

和错误消息:

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))

提前致谢。

使用java.lang.Long.parseLong并不会以任何方式帮助您获取java.lang.Long ,因为parseLong是一个静态辅助方法,它返回一个原语(未包装) long 因此,对于解析,您也可以只使用Scala的.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的构造函数之一:

val ids2: Array[java.lang.Long] = 
  idsStr.split(",").map(str => new java.lang.Long(str.toLong))

val ids3: Array[java.lang.Long] = 
  idsStr.split(",").map(str => new java.lang.Long(str))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM