Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scala.Array[Long]不';t不符合预期的类型scala.Array[java.lang.Long]_Java_Scala - Fatal编程技术网

scala.Array[Long]不';t不符合预期的类型scala.Array[java.lang.Long]

scala.Array[Long]不';t不符合预期的类型scala.Array[java.lang.Long],java,scala,Java,Scala,我想将java代码与一些scala代码混合使用,但当尝试将STR转换为长数组时,出现了错误。 下面是我的代码示例: 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] requir

我想将java代码与一些scala代码混合使用,但当尝试将STR转换为长数组时,出现了错误。 下面是我的代码示例:

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