繁体   English   中英

泛型方法使用类型作为参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM