Kotlin TypeToken"未解决的参考"错误

时间:2015-07-13 12:31:22

标签: java gson kotlin

我收到错误"未解决的回复参考"在第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?
        }
        }
    }

1 个答案:

答案 0 :(得分:3)

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

同样,表达式不能出现在as运算符的右侧,原因相同(第7行):此运算符将左侧转换为指定的类型在右边。此外,您的函数似乎没有返回任何内容,因此从中返回有用的值将不起作用。