Intereting Posts
Стереть внутренний статус объекта в тесте Ошибка decimalFormat.format () Котлинский ленивый блок не выполняется при использовании Mockito и InjectMocks Обращение к инфиксному логическому результату kotlin Большой размер файла при преобразовании растрового изображения в PDF Загружать ресурс из локального каталога без класса Как обмениваться изображениями на Android с помощью Kotlin? Параметры и внутренние параметры рефицированного типа Kotlin – ключевое слово «in» – для чего используется? kotlin, как упростить передачу параметров в конструктор базового класса? Java не разрешает окончательные методы по умолчанию .. но делает Котлин? Котлин разметит шестнадцатеричную строку длинной Где находится старая спецификация Kotlin? что означает эта ошибка при преобразовании из java-кода с общим в kotlin, один запрет после T? Наследование класса с помощью основного конструктора

Джексон не может десериализовать классы данных Котлина

Я использую Jackson для десериализации классов данных Kotlin. Я использую jackson-kotlin-module но Джексон дает мне следующую ошибку:

Невозможно создать экземпляр MyClass: не найдено подходящего конструктора, не может десериализоваться из значения Object

Я пробовал добавлять правила proguard для сохранения своих классов, и это конструктор без каких-либо успехов.

Если я добавлю правило для хранения всех классов kotlin, ошибка исчезнет.

Есть идеи?

Solutions Collecting From Web of "Джексон не может десериализовать классы данных Котлина"

После многих проб и ошибок я обнаружил, что Proguard kotlin.Metadata аннотации из моих классов данных.

Добавление следующего правила устраняет проблему:

 -keep class kotlin.Metadata { *; } 

Я также обнаружил, что необходимо добавить правило для хранения синтетических методов в моих классах данных:

 -keepclassmembers public class com.mypackage.** { public synthetic <methods>; }