У меня есть класс 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, содержащий целые числа