Anotaciones de Enum en Kotlin

Tengo una enumeración serializada / deserializada por Gson:

enum class PacketType { NONE; [SerializedName("request")] REQUEST; [SerializedName("response")] RESPONSE; [SerializedName("event")] EVENT; } 

Lamentablemente, me di count de que Gson ignora las annotations de SerializedName y utiliza nombres en mayúscula para los valores enum. Decidí averiguar por qué la serialization no funciona según lo previsto y descubrí que Kotlin descarta todas las annotations para los valores enum. ¿Cómo puedo hacer que estas annotations aparezcan en bytecode generado?

Parece un error para mí. Informe al rastreador de problemas .

Como una solución temporal, puede escribir esta class en Java

El problema ahora está solucionado, tu código ahora funciona bien en Kotlin M9 (0.9.66). Si actualiza a eso, funcionará como espera.

p.ej

aplicación build.gradle

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'org.jetbrains.kotlin:kotlin-stdlib:0.9.66' compile 'com.google.code.gson:gson:2.3' } 

build.gradle de nivel superior

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:0.13.2' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.9.+' } } 

Confirmé esto haciendo una enumeración sin relación entre los nombres enum y los nombres SerializedName, y funcionó como se esperaba.

  • Vista web de Android con kotlin. no funciona tipo de input = file
  • Kotlin - Comprender a los que se zambullen y los Setters
  • RxAndroid - Manejar errores con el operador Zip
  • Repetir y crear una database desde el volcado sql: cómo hacerlo?
  • Fragmento en kotlin
  • Cómo pasar funciones para funcionar en Kotlin
  • NullPointerException en Android Studio 3 Beta 1
  • Querydsl: divide los resultados en dos o más objects
  • ¿Cómo puedo ejecutar la inspección del código de AndroidStudio en la terminal?
  • Error de aplicación cuando bash enviar SMS
  • Cómo upload el valor de retorno de un constructor