我有一个泛型类,如下所示
//Un modifiable source
public AbstractJsonWebserviceConnector<T extends JsonRequest, U>{
public U getResponse(T request, Class<U> responseType) throws Exception {
//Do Some stuff
}
}
另一个类如下扩展它
public class GenericConnector<T> extends AbstractJsonWebserviceConnector<JsonRequest, T> {
public T process(JsonRequest request, Class<T> tClass) throws Exception {
return this.getResponse(request, tClass);
}
}
M我可以将它转换为类似下面的内容以避免额外的参数 Class
public class GenericConnector<T> extends AbstractJsonWebserviceConnector<JsonRequest, T> {
public T process(JsonRequest request) throws Exception {
return this.getResponse(request, typeof(T));
}
}
最佳答案
这里有一个技巧,虽然它很丑。
public class GenericConnector<T> extends AbstractJsonWebserviceConnector<JsonRequest, T> {
public T process(JsonRequest request) throws Exception {
return this.getResponse(request, (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
}
}
关于java - 如何将泛型类型传递给泛型方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29488715/