【问题标题】:Kotlin TypeToken "Unresolved reference" errorKotlin TypeToken“未解析的引用”错误
【发布时间】:2015-07-13 12:31:21
【问题描述】:

我在第 5,6 和 7 行收到错误“未解决的对响应的引用”。您能帮我理解问题吗?

 public class GenericCall {
        public fun genecicCall(functionToBeCalled:String, responseType:String, requestType:String, vararg args:String){
            var request = Class.forName(requestType).newInstance()
            var response = Class.forName(responseType).newInstance()
            var finalType = object : TypeToken<GenericResponse<Class<response>>>(){}.getType()
            var creditresponse: GenericResponse<response>? = AjaxHelper.ajax(Constants.Ajax.ENDPOINT_CREDIT, Constants.Ajax.REQUEST_POST, request, finalType, null)
            return ResponseProcessing.processResponse(creditresponse as Any) as response?
        }
        }
    }

【问题讨论】:

  • 是错字还是第 5 行 () 前缺少 2 ">"?
  • one ">" 丢失,但修改后仍然出现同样的错误。
  • 第 5 行有 3 个打开的 ">()

标签: java gson kotlin


【解决方案1】:

泛型类型参数不能是表达式,它应该是另一种类型,例如类,可能带有其他泛型类型参数。因此,如果Fooresponse 的静态(由编译器推断)类型,您应该编写例如Class&lt;Foo&gt; 而不是Class&lt;response&gt;(第5 行)。在您的情况下,您可能对response 一无所知,除了它是Any 的一个实例。因此,您可以使用Class&lt;Any&gt;Class&lt;*&gt;,无论您喜欢哪个。与 GenericResponse 类似(第 6 行)。

由于同样的原因(第 7 行),as 运算符的右侧也不能出现表达式(第 7 行):此运算符将左侧转换为右手边。此外,您的函数似乎没有返回任何内容,因此无法从中返回有用的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2020-04-10
    相关资源
    最近更新 更多