我收到错误"未解决的回复参考"在第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?
}
}
}
答案 0 :(得分:3)
泛型类型参数不能是表达式,它应该是另一种类型,例如类,可能还有其他泛型类型参数。因此,如果Class<response>
是静态(由编译器推断)类型Class<Foo>
,则应该编写Foo
而不是response
(第5行)。在你的情况下,你可能对response
一无所知,除了它是Any
的一个实例。因此,您可以使用Class<Any>
或Class<*>
,无论您喜欢哪种方式。与GenericResponse
(第6行)类似。
同样,表达式不能出现在as
运算符的右侧,原因相同(第7行):此运算符将左侧转换为指定的类型在右边。此外,您的函数似乎没有返回任何内容,因此从中返回有用的值将不起作用。