// 获得对象的类型
        Class<?> classType = object.getClass();
        System.out.println("Class:" + classType.getName());        // 通过默认构造方法创建一个新的对象
        Object objectCopy = classType.getConstructor(new Class[] {}).newInstance(new Object[] {})
请问这段代码中的参数 new Class[]{},new Object[]{}是什么意思啊?没见过这种参数,怎么也理解不了,请各位大虾说的明白点,谢了!

解决方案 »

  1.   

    我的理解是这样的:
    getConstructorde(Object)方法的参数是一个对象,所以,调用的时候,必须用new Class[]来构造
    newInstance(Object)方法也一样
      

  2.   

    new Class[] {}指的是classType这个类的构造方法的参数的类型,比如String,int等,
    new Object[] {}指的是构造方法的参数值。
    如果数组为空则为无参的构造方法,既然无参,所以形参数组也是空的比如,public class Person {
    private String name;
    private int age;
    public Person(String name, int age){
    this.name = name;
    this.age = age;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }

    }
    那么new Class[] {} 应该是new Class[] {String.calss,int.class},new Object[] {}应该是new Object[] {name,age},也就是说一个是参数的类型对象,一个是参数的形参
      

  3.   

    new Class[] {} 就是一个数组类型,只不过是数组元素类型为Class类型,Class类型也就是类的信息类型,也是反射所必要的,因此出现String.class,类.class的方法来取这个类型。new Object[] {}也就是实例对像,如果你清楚反射的话,这些很简单理解。