Десериализация списка Scala с Джексоном - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть класс case, который возвращает, выглядит примерно так

case class Response(
  @JsonDeserialize(contentAs = classOf[java.lang.Long])
  longList: List[Long] = null)

У меня есть клиент ObjectMapper, который помимо прочего регистрирует DefaultScalaModule.Согласно https://github.com/FasterXML/jackson-module-scala/wiki/FAQ, добавление @JsonDeserialize должно решить проблему, но это не

Проблема в моих тестах, и я получаю следующее сообщение об ошибке

java.lang.ClassCastException: java.lang.Integer не может быть приведен к java.lang.Long

в scala.runtime.BoxesRunTime.unboxToLong (BoxesRunTime.java:105)

Тестовый класс, list.head - это то, что вызывает ошибку

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class ControllerTest {
  @Autowired
  var testRestTemplate: TestRestTemplate = _
  @Autowired
  var objectMapper: ObjectMapper = _

  @Test 
  def test() : Unit = {
    val response = testRestTemplate.exchange("url", HttpMethod.GET, classOf[Response])
    val list = response.getBody.longList
    val a = list.head
  }
}

Отладка говорит мне, что мой список на самом деле имеет тип $ colon $ colon, содержащий целые числа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...