Невозможно вызвать конструктор без аргументов для java.lang.Enum <T> - PullRequest
0 голосов
/ 06 декабря 2018

У меня одна проблема с enum в Kotlin.Проблема кажется глупой, но, может быть, мне не хватает некоторого фрагмента кода, чтобы заставить его работать.Это мои данные JSON

    "CustomerData": [
      {
        "token": "token_data1",
        "role": "Admin"
      },
      {
        "contactUUID": "token_data2",
        "role": "User"
      }
    ] 

Один класс данных Kotlin, как показано ниже

@JsonInclude
enum class UserRole(val userRoleDesc: String) {

@SerializedName("Admin")
ADMIN("Admin"),

@SerializedName("User")
USER("User"),

@SerializedName("unknown")
UNKNOWN("unknown");
}

, и я использую этот класс перечисления, как показано ниже

@JsonInclude(JsonInclude.Include.NON_EMPTY)
data class CustomerAssociate (
        val contactUUID: String,
        val role: Enum<UserRole>?
)

Но яполучение ошибок ниже

java.lang.RuntimeException: Unable to invoke no-args constructor for java.lang.Enum<T>. Registering an InstanceCreator with Gson for this type may fix this problem.

    at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:228)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212)

Может кто-нибудь помочь мне избавиться от этого.?Заранее всем спасибо.

1 Ответ

0 голосов
/ 06 декабря 2018

Проблема в вашем объявлении ..

@JsonInclude(JsonInclude.Include.NON_EMPTY)
data class CustomerAssociate (
        val contactUUID: String,
        val role: UserRole? // instead of your code 'val role: Enum<UserRole>?'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...