如何使方法的泛型返回类型依赖于参数类型?

时间:2010-04-28 14:48:02

标签: java generics

我有一个convert方法,它接受一个String和一个类作为参数,并构造一个给定类的对象,该对象将被返回。

用法应如下所示

Something s = Converter.convert("...", Something.class)

是否可以用Java泛型来表达这一点?

2 个答案:

答案 0 :(得分:7)

这将是:

Class<T>

public static <T> T convert(String source, Class<T> tClass)

答案 1 :(得分:1)

你可以这样做:

public class Main { 

public static void main(String[] args) throws Exception { 

   String s = convert(new String(), String.class);
}

private static <T>T convert(String string, Class<T> class1) {
     // TODO Auto-generated method stub
     return (T) new String();
} 
} 

编辑:在你的方法参数中,它不是类的类 并且在返回时你应该将它转换为T ans return,如

     return (T) mapper.readValue(json, target);