mają klasę przypadku Osoba z domyślnym parametrem.Scala Jackson obiekt odwzorowujący obiekt ustawienia null zamiast wartości domyślnych w przypadku klasy
przekazuje mapperowi ciąg znaków bez parametrów, mapper ustawia go jako zerowy.
Oczekiwanie na ustawienie domyślnej wartości
dlaczego tak jest?
przykład: błąd
@JsonIgnoreProperties(ignoreUnknown = true)
case class Person(id:Int,name:String="")
class MapperTest extends SpecificationWithJUnit {
"Mapper" should {
"use default param" in {
val personWithNoNameString = """{"id":1}"""
val mapper = new ObjectMapper();
mapper.registerModule(DefaultScalaModule)
val personWithNoName = mapper.readValue(personWithNoNameString,classOf[Person])
personWithNoName.name must be("")
}
}
}
get:
'null' is not the same as ''
java.lang.Exception: 'null' is not the same as ''
nie będzie kompilować (oczekiwane Int dostał null) – Nimrod007
zaktualizowane odpowiedź, null.asInstanceOf [Int] jest 0, w przeciwnym wypadku użyj opcji [Int] –
nadal nie działa, uruchomienie testów daje zero – Nimrod007