[英]Generic method uses type as argument
我有一个通用方法,无法弄清楚如何编译
private ConditionalCheckRetryHandler<T> T getConditionalCheckRetryHandler() {
return new ConditionalCheckRetryHandler<T>;
}
理想情况下,我想调用<ClassName>getConditionalCheckRetryHandler()
并返回该类型的类,但T
似乎不存在。 有什么办法可以明智地做到这一点?
您的代码无法编译。
如果你有课
class ConditionalCheckRetryHandler<T>{
//...
}
那么你可以使用以下方法
private <T> ConditionalCheckRetryHandler<T> getConditionalCheckRetryHandler() {
return new ConditionalCheckRetryHandler<>();
}
通常,我们使用运行时类型标记来做到这一点:
private ConditionalCheckRetryHandler<T> T getConditionalCheckRetryHandler(Class<T> returnType) {
return new ConditionalCheckRetryHandler<T>();
}
因此,您可以这样称呼它: getConditionalCheckRetryHandler(DesiredType.class)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.