Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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,比如说, // full_class_name is something like "java.lang.String" Class<?> cls = Class.forName(full_class_name); //完整的\u类\u名称类似于“java.lang.String” Class cls=Class.forName(全名); 然后我想创建一个“cls”对象的向量。可能吗?向量当然不起作用。我不想要一般的向量对象 我是Java新手。谢谢。Java泛型只在编译时适用,

比如说,

// full_class_name is something like "java.lang.String"

Class<?> cls = Class.forName(full_class_name);
//完整的\u类\u名称类似于“java.lang.String”
Class cls=Class.forName(全名);
然后我想创建一个“cls”对象的向量。可能吗?向量当然不起作用。我不想要一般的
向量
对象


我是Java新手。谢谢。

Java泛型只在编译时适用,这要归功于一种叫做类型擦除的东西。这意味着,如果您不知道编译时要在集合中存储什么对象,那么泛型就帮不了您

从编码的角度来看,您可以创建
向量
,以获得不提供编译时警告的无限制向量


顺便说一句,Vector是一个旧的集合,最好用ArrayList之类的新集合来代替。

Java泛型只在编译时适用,这要归功于一种叫做类型擦除的东西。这意味着,如果您不知道编译时要在集合中存储什么对象,那么泛型就帮不了您

Vector<Class<?>> v
从编码的角度来看,您可以创建
向量
,以获得不提供编译时警告的无限制向量


顺便说一句,Vector是一个旧的集合,最好用ArrayList之类的新集合来代替。

Vector
Vector一般来说,如果您在创建向量之前不知道对象类,那么除了raw
Vector
(但它会给出ide警告)或Vector,您别无选择。但如果您在编译时知道该类,则应使用它:

Vector<Class<?>> v

Vector

通常,如果在创建向量之前不知道对象类,则除了原始
Vector
(但它会给出ide警告)或Vector之外,您别无选择。但如果您在编译时知道该类,则应使用它:


Vector

Vector不是旧的集合,它是ArrayList的同步版本。@Vladimir:它没有明确地被弃用,但它是旧的。Vector早于Java集合API,堆栈、哈希表、字典和枚举也是如此。它被“改装”以实现列表接口,但大多数Java程序员宁愿使用ArrayList而不是Vector。如果需要一个同步的ARARYLIST,可以在AlayLIST上使用Copyth.SimultIdEdList(或者考虑JavaUTIL并发类中的一个是否更合适)。Vector的存在只是为了向后兼容。谢谢。我正在尝试解析xml标记,例如或。当我看到这些标记时,我想动态地创建一个“几何体”对象或“材质”对象的HashMap。我想我必须使用一个公共基类作为类型参数。Vector不是一个旧的集合,它是ArrayList的同步版本。@Vladimir:它不是显式弃用的,但它是旧的。Vector早于Java集合API,堆栈、哈希表、字典和枚举也是如此。它被“改装”以实现列表接口,但大多数Java程序员宁愿使用ArrayList而不是Vector。如果需要一个同步的ARARYLIST,可以在AlayLIST上使用Copyth.SimultIdEdList(或者考虑JavaUTIL并发类中的一个是否更合适)。Vector的存在只是为了向后兼容。谢谢。我正在尝试解析xml标记,例如或。当我看到这些标记时,我想动态地创建一个“几何体”对象或“材质”对象的HashMap。我想我必须使用一个公共基类作为类型参数。