Правильный способ получить максимальное значение JInt из List[JValue] в Json4s

Есть ли какие-то конкретные причины, по которым Json4s не определили неявное упорядочение?

Например этот код::

List(JInt(1), JInt(3)).max

Вызывает следующее исключение

Не определен неявный порядок для org.json4s.JsonAST.JInt

Так это просто особенность, которая никого не волнует, или за этим стоит какая-то история?

И также, эта реализация (использует скалярный порядок) в порядке? Разве это не нарушает договор?

object JValueOrdering extends Order[JValue] {
  def order(x: JValue, y: JValue): Ordering = (x, y) match {
    case (JInt(a), JInt(b))         => a ?|? b
    case (JString(a), JString(b))   => a ?|? b
    case (JDouble(a), JDouble(b))   => a ?|? b
    case (JDecimal(a), JDecimal(b)) => a ?|? b
    case (JArray(a), JArray(b))     => a.length ?|? b.length
    case _                          => Ordering.EQ
  }
}

0 ответов

Другие вопросы по тегам