如何用Vector <class>?</class>创建一个对象

时间:2011-05-31 08:21:46

标签: java

我有一个

Vector<Class> v = new Vector<Class>();
a.addElement(HashMap.class);
....

我如何用向量的i元素创建一个对象?

4 个答案:

答案 0 :(得分:5)

你的意思是?

Class clazz = vector.get(i);
Object object = clazz.newInstance();

BTW:我不会使用Vector,除非你必须使用它,因为它是由Java 1.2(1998)中的List替换的遗留类

答案 1 :(得分:3)

您可以使用newInstance

v.get(i).newInstance()

答案 2 :(得分:2)

如果您没有默认构造函数,可以使用:

Object o = vector.get(i).getConstructor(parameterClazzes).newInstance(parameters);

否则

Object o = vector.get(i).newInstance();

采用默认构造函数并创建对象


示例:

public static void main(String args[]) throws Exception {

    Integer i = Integer.class.getConstructor(Integer.TYPE).newInstance(17);
    System.out.println(i);

    String s = String.class.getConstructor(String.class).newInstance("Hello");
    System.out.println(s);
}

答案 3 :(得分:0)

也许这会帮助您理解矢量类

class Person{
private String name;
private String lastname;
public void setName(String name){this.name = name;}
public void setLastname(String lastName){this.lastname = lastname;}
public String getName(){return name;}
public String getLastname(){ return lastname;} 
}

Vector<Person> v = new Vector<Person>(10,2);
Person objPerson = new Person();

objPerson.setName("Carl");
objPerson.setLastname("Jhonson");

v.addElement(objPerson);

System.out.println("Name: "+v.elementAt(i).getName());
System.out.println("Lastname: "+v.elementAt(i).getLastname());