scala中經常遇到最頭疼的問題,就是類型不匹配或者帶Any,Option的提示錯誤信息。
最近碰到的是取最大值,但是明明已經Long類型的,卻提示下面這個錯誤信息。
相關的源程序如下:
// 獲取offset
1. val beginOffsets = KafkaTool.getBeginningOffset(broker,group,topic).map(o=>{ (KafkaTool.getPath(baseOffsetPath,group,topic,o._1.partition) -> o._2) }).toMap
// 根據partitionPath獲取Map的值,這里返回的是一個Option[Long]類型 2. val b_offset = beginOffsets.get(partitionPath).getOrElse(0L)
// 比較最大值
3. val max = Seq(b_offset,offset.toLong).max
這里如果將上面的第2行添加返回類型,則會提示以下錯誤:
解決方法:
添加轉換_.toLong
val b_offset = beginOffsets.get(partitionPath).map(_.toLong).getOrElse(0L)