Kotlin TypeToken "Unresolved reference" 错误
Kotlin TypeToken "Unresolved reference" error
我在第 5,6 和 7 行收到错误 "Unresolved reference to response"。你能帮我理解这个问题吗?
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?
}
}
}
泛型类型参数不能是表达式,它应该是另一种类型,例如 class,可能还有其他泛型类型参数。因此,如果 Foo
是 response
的静态(由编译器推断)类型,那么您应该编写例如 Class<Foo>
而不是 Class<response>
(第 5 行)。在您的情况下,除了它是 Any
的一个实例之外,您可能对 response
一无所知。因此,您可以使用 Class<Any>
或 Class<*>
,随您喜欢。与 GenericResponse
(第 6 行)类似。
出于同样的原因(第 7 行),as
运算符的右侧也不能出现表达式:此运算符将左侧转换为 type 在右侧指定。此外,您的函数似乎没有 return 任何东西,因此 return 从中获取有用的值将不起作用。
我在第 5,6 和 7 行收到错误 "Unresolved reference to response"。你能帮我理解这个问题吗?
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?
}
}
}
泛型类型参数不能是表达式,它应该是另一种类型,例如 class,可能还有其他泛型类型参数。因此,如果 Foo
是 response
的静态(由编译器推断)类型,那么您应该编写例如 Class<Foo>
而不是 Class<response>
(第 5 行)。在您的情况下,除了它是 Any
的一个实例之外,您可能对 response
一无所知。因此,您可以使用 Class<Any>
或 Class<*>
,随您喜欢。与 GenericResponse
(第 6 行)类似。
出于同样的原因(第 7 行),as
运算符的右侧也不能出现表达式:此运算符将左侧转换为 type 在右侧指定。此外,您的函数似乎没有 return 任何东西,因此 return 从中获取有用的值将不起作用。