泛型方法使用type作为参数

时间:2017-11-23 10:31:34

标签: java generics

我有一个通用方法,我无法弄清楚如何编译

private ConditionalCheckRetryHandler<T> T getConditionalCheckRetryHandler() {
    return new ConditionalCheckRetryHandler<T>;
}

理想情况下,我想致电<ClassName>getConditionalCheckRetryHandler()并返回该类别,但T似乎并不存在。有没有办法合理地做到这一点?

2 个答案:

答案 0 :(得分:2)

您的代码无法编译。

如果你有课

class ConditionalCheckRetryHandler<T>{
   //...   
}

然后你可以使用以下方法

private <T> ConditionalCheckRetryHandler<T>  getConditionalCheckRetryHandler() {
        return new ConditionalCheckRetryHandler<>();
}

答案 1 :(得分:0)

通常我们使用runtime type token

private ConditionalCheckRetryHandler<T> T getConditionalCheckRetryHandler(Class<T> returnType) {
    return new ConditionalCheckRetryHandler<T>();
}

所以你可以这样称呼:getConditionalCheckRetryHandler(DesiredType.class)