类对象的Java向量

类对象的Java向量,java,Java,我想动态创建自定义类对象的向量。程序运行时,tableClassName变量包含从xml请求中重新获取的类名。当我尝试下面的方法时,它给了我一个错误 Class tableClass = Class.forName(tableClassName).asSubclass(comm.Table.class); Vector<tableClass> MappingLookupResu = new Vector<tableClass>(); Class tableClass

我想动态创建自定义类对象的向量。程序运行时,tableClassName变量包含从xml请求中重新获取的类名。当我尝试下面的方法时,它给了我一个错误

 Class tableClass = Class.forName(tableClassName).asSubclass(comm.Table.class);
 Vector<tableClass> MappingLookupResu = new Vector<tableClass>();
Class tableClass=Class.forName(tableClassName).asSubclass(comm.Table.Class);
Vector MappingLookupResu=新向量();

由于泛型主要是一个仅编译时构造,因此不能基于运行时提供的
字符串来实例化泛型类型参数(在本例中为
向量的
t


无论如何,这是没有意义的:不管是谁与你的
向量进行交互
都不会获得使用具体类型处理向量所需的信息。如果他们这样做了,那么他们可以只向您提供
类,因为泛型主要是一个仅编译时的构造,所以您不能基于运行时提供的
字符串
实例化泛型类型参数(在本例中是
t
向量


无论如何,这是没有意义的:不管是谁与你的
向量进行交互
都不会获得使用具体类型处理向量所需的信息。如果他们这样做了,那么他们就可以为您提供
Class,就像编写
mappingLookupResult=newvector()

mappingLookupResult=newvector()
是合法的,但您提供的是一个对象(属于“类”类),而不是类定义。如果对象是“comm.Table”,请尝试:

mappingLookupResult = new Vector< comm.Table >();
mappingLookupResult=newvector();

mappingLookupResult=新向量<?扩展通讯表>();

另外-您是否出于特定原因使用
Vector
<如果不需要同步,code>ArrayList会更快。

这就像编写
mappingLookupResult=newVector()

mappingLookupResult=newvector()
是合法的,但您提供的是一个对象(属于“类”类),而不是类定义。如果对象是“comm.Table”,请尝试:

mappingLookupResult = new Vector< comm.Table >();
mappingLookupResult=newvector();

mappingLookupResult=新向量<?扩展通讯表>();

另外-您是否出于特定原因使用
Vector
<如果不需要同步,code>ArrayList
会更快。

Java规则47:不要使用
Vector
(这是一个坏类)Java规则47:不要使用
Vector
(这是一个坏类)非常感谢您提供的信息。如果向量名结果与函数中的java.lang.Object实例项一起添加。是否有一种方法可以遍历每个向量对象结果和类型强制转换到tableClassName引用。如何将类型转换为tableClass aa=result.get(0);我想在对象aa中调用一些getMethods,你可以粘贴一些示例代码。问题是我从xml请求中动态获取类名。如果您事先不知道类型,则无法(在编译时)进行类型转换。如果可以保证的话,您可能可以将类型转换到一个公共接口,否则您可以尝试使用反射访问这些方法。非常感谢您提供的信息。如果向量名结果与函数中的java.lang.Object实例项一起添加。是否有一种方法可以遍历每个向量对象结果和类型强制转换到tableClassName引用。如何将类型转换为tableClass aa=result.get(0);我想在对象aa中调用一些getMethods,你可以粘贴一些示例代码。问题是我从xml请求中动态获取类名。如果您事先不知道类型,则无法(在编译时)进行类型转换。如果可以保证的话,您可能能够将类型转换到公共接口,否则您可以尝试使用反射访问方法。
mappingLookupResult = new Vector< ? extends comm.Table >();