如何使用类对象作为类型参数创建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之类的新集合来代替。VectorVector一般来说,如果您在创建向量之前不知道对象类,那么除了rawVector
(但它会给出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。我想我必须使用一个公共基类作为类型参数。