У меня есть общий класс, который нужно десериализовать из JSON. Как настроить JsonDeserializer в Котлине?
org.springframework.kafka.support.serializer.JsonDeserializer
...
ErrorHandlingDeserializer2(JsonDeserializer(
MyGenericClass<MyClass>::class.java, // this throws "Only classes are allowed on the left hand side of a class literal" error
objectMapper
))
Я нашел решения, например. используя reified, но я не могу применить его к этому Spring Kafka JsonDeserializer.
Спасибо за Ваш ответ. Чтобы быть уверенным, вы хотите расширить/написать мою собственную реализацию JsonDeserializer с поддержкой TypeReference?
Это может сработать, но иногда и срабатывает fastxml.github.io/jackson-core/javadoc/2.0.0/com/fasterxml/…

Стирание типов в Java не позволяет вам иметь
Generic<P>подобные структуры. Тип будет только для классаGeneric. Вы можете зафиксировать тип, создав необобщенный объект, например.object: TypeReference<Generic<MyClass>> {}. Попробуйте найти что-то подобное в исходниках Kafka, также вы можете использоватьreifiedдженерики Kotlin, чтобы упростить способ создания объектов TypeReference (или подобных) docs.oracle.com/javase/tutorial/java/generics/erasure.html