Я получаю выше ошибку при вызове этой функции
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))
}
Перед тем, как вызывать эту функцию, я явно позволил инвентаризации составить Map[Long, Long]
.
val invMap:Map[Long, Long] = inventoryMap
val pMap:Map[Long, String] = priceMap
val basicStats = getBasicStats(pMap, invMap)
Мой код успешно компилируется.Я получаю эту ошибку при запуске тестов.Я прошел свои собственные тестовые данные, но если это вызвано данными, должно ли отображение данных завершиться неудачно раньше (например, когда я явно запросил карту?), Это далеко вниз.
- Я не понимаю, почему я получаю эту ошибку
- откуда я взял BigInt.
- почему он приводится к java.lang.Long довольночем scala.Long.
Самая последняя трассировка стека - scala.runtime.BoxesRunTime.unboxToLong(BoxesRunTime.java:105)