我在调用此函数时遇到上述错误
def filterOutNoInvPrices(storeNum: Long, inventoryMap: Map[Long, Long]) = {
val inv = inventoryMap.get(storeNum)
val minimumUnitsCheck:Boolean = inv.nonEmpty && inv.get.toInt > 3
println("what" + minimumUnitsCheck)
if (minimumUnitsCheck) {
Some(storeNum, inv.get)
}
else
None
}
更具体地说,它位于inv.nonEmpty && inv.get.toInt > 3
行。
我调用filterOutNoInvPrices
的函数是getBasicStats
:
def getBasicStats(priceMap:Map[Long, String], invMap:Map[Long, Long])={
priceMap
.toSeq
.map(storeAndPrice => {
val price = getPriceAndPriceType(storeAndPrice._2)._1
(price, filterOutNoInvPrices(storeAndPrice._1, invMap))})
.filter(_._2.nonEmpty)
.map(record => (record._1, record._2.get))
}
在我调用此函数之前,我明确地让inventoryMap为Map[Long, Long]
。
val invMap:Map[Long, Long] = inventoryMap
val pMap:Map[Long, String] = priceMap
val basicStats = getBasicStats(pMap, invMap)
我的代码编译成功。我在运行测试时遇到此错误。我确实传递了自己的测试数据,但如果它是由数据引起的,那么数据映射是否应该提前失败?(例如,当我明确声明地图时会发生?)这是自下而上的。
最近的堆栈跟踪是scala.runtime.BoxesRunTime.unboxToLong(BoxesRunTime.java:105)