代码之家  ›  专栏  ›  技术社区  ›  Bhuvanesh BS

类文字的左侧只允许类

  •  34
  • Bhuvanesh BS  · 技术社区  · 8 年前

    我知道StackOverflow中有很多类似的问题,但我的问题没有解决。

    我有一个通用数据类:

      data class ServiceCall<out T>(val result: T?, val exception: String?, val pagination: String?, val stringResult: String?)
    

    Gson().fromJson(json, ServiceCall<SurveyListModel>::class.java).result
    

    类文字的左侧只允许类

    2 回复  |  直到 8 年前
        1
  •  44
  •   s1m0nw1    8 年前

    不能将泛型用于 class

    List<Int>::class.java
    

    它会给你同样的错误。要在GSON反序列化中使用泛型typ,请执行此处建议的操作:

    https://stackoverflow.com/a/5554296/8073652

    编辑:

    在科特林,它看起来像这样:

    val type: Type = object : TypeToken<ServiceCall<SurveyListModel>>() {}.type 
    Gson().fromJson<ServiceCall<SurveyListModel>>(json, type).result
    

     class Token : TypeToken<List<Int>>()
     val x: List<Int> = Gson().fromJson(Gson().toJson(arrayOf(1)), Token().type)
     println(x)
    
        2
  •  2
  •   Mohan    4 年前

    val response = ObjectMapper().convertValue(dataObject, object: TypeReference<Map<String, Any>>(){})