有没有办法在Java中找到模板(通用)参数的类型?

我正在尝试用Java做这样的事情:

public static  T foo() { return (T) bar(T); } public static Object bar(Class klaz) { return klaz.newInstance(); } 

但是代码没有编译,因为我不能用T代替Class
有了具体的课程,我可以像以下一样打电话:

 bar(ConcreteClass.class); 

但这同样对T不起作用。 即没有T.class这样的东西

在C#中, typeof适用于具体和模板类型。 所以,对bar的调用将是:

 bar(typeof(T)); 

但是我无法在Java中找到类似的东西。

我错过了什么,或者Java没有办法获取模板参数的类型? 如果Java没有设施,是否有任何解决方法?

没有办法获得这种类型。 Java的generics使用类型擦除,所以即使java本身也不知道T在运行时是什么。

至于变通方法:您可以定义foo以获取Class类型的参数,然后使用它。