簡體   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