после некоторого времени, потраченного на исследования, я обнаружил, что в AnnotatedFieldCollector#_findFields
есть блок for
, который вызывает JavaType.getRawClass().getDeclaredFields()
, и если он возвращает пустой массив, весь блок for
пропускается, map _fields
не инициализируется и остается null
при вызове _addFieldMixIns
.
Это происходит потому, что свойства не являются полями в kotlin, а родительский класс не имеет их.
Эту проблему можно обойти, добавив аннотированное свойство @JvmField
в класс NotificationEvent
следующим образом:
sealed class NotificationEvent {
@Suppress("unused")
@JvmField val stub: Int = 0
data class SomeUsefulEvent(val eventData: String): NotificationEvent()
}
и все отлично работает!
Я надеюсь, что этот вопрос кому-нибудь поможет, и я призываю команду Джексона исправить эту ошибку