Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在Java中找到模板(泛型)参数的类型?_Java_Generics - Fatal编程技术网

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

有没有办法在Java中找到模板(泛型)参数的类型?,java,generics,Java,Generics,我尝试在Java中执行类似的操作: public static <T> T foo() { return (T) bar(T); } public static Object bar(Class<?> klaz) { return klaz.newInstance(); } 但这对T不起作用,也就是说,T级是不存在的 在C#中,混凝土和模板类型的工程类型。所以,给酒吧打电话应该是: bar(typeof(T)); 但我在Java中找不到类似的东西 我是否遗漏

我尝试在Java中执行类似的操作:

public static <T> T foo() {
  return (T) bar(T);
}

public static Object bar(Class<?> klaz) {
  return klaz.newInstance();
}
但这对T不起作用,也就是说,T级是不存在的

在C#中,混凝土和模板类型的工程类型。所以,给酒吧打电话应该是:

bar(typeof(T));
但我在Java中找不到类似的东西


我是否遗漏了什么,或者Java没有获取模板参数类型的方法?如果Java没有这个功能,有什么解决办法吗?

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

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

bar(typeof(T));