我有一个泛型类,如下面的
//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);
}
}
MCan我将其转换为类似下面的内容,以避免额外的参数Class&lt; T&gt; tClass?
public class GenericConnector<T> extends AbstractJsonWebserviceConnector<JsonRequest, T> {
public T process(JsonRequest request) throws Exception {
return this.getResponse(request, typeof(T));
}
}
答案 0 :(得分:1)
这是一个技巧,虽然它很难看。
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]);
}
}
答案 1 :(得分:0)
public T进程(JsonRequest请求,Class ... tClass),这将支持Class或者一个对象