gpt4 book ai didi

java - 如何将泛型类型传递给泛型方法?

转载 作者:行者123 更新时间:2023-11-30 11:05:51 25 4
gpt4 key购买 nike

我有一个泛型类,如下所示

//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 tClass 吗?

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com