黑马程序员技术交流社区

标题: Constructor反射问题 [打印本页]

作者: 小小太阳    时间: 2013-5-27 12:48
标题: Constructor反射问题
获取一个自定义类中的一个带参数的构造方法怎么写?
比如Person类中的Person(String name,int age){

}
作者: lpflpy    时间: 2013-5-27 13:08
package heimeTest;

public class Demo{
        public static void main(String[] args) throws Exception{
                Person p = (Person)Person.class.getConstructor(String.class,/*int.class*/Integer.TYPE).newInstance(new String("zhangsan"),13);
                System.out.println(p);
        }
}
class Person{
        private String name;
        private int age;
        public Person(String name, int age){
                this.name = name;
                this.age = age;
        }
        public String toString(){
                return name + ":" +age;
        }
}

作者: lpflpy    时间: 2013-5-27 13:09
Constructor constructor = Person.class.getConstructor(String.class,/*int.class*/Integer.TYPE) 这一句就是获得其构造方法的

作者: 曹德君    时间: 2013-5-27 13:35
楼上妹纸学的好啊。让我茅塞顿开。
  1.    //获Person类的构造方法。
  2.          Constructor constructor3 = Person.class.getConstructor(String.class,Integer.TYPE);
  3.          //创建Person类。
  4.          Person p1 = (Person)constructor3.newInstance(new String("cdj"),22);
  5.           System.out.println(p1);
复制代码

作者: ozt6719393    时间: 2013-5-27 13:37
//获取Person类的字节码文件,此处为了去掉感叹号,加入了通配符
                Class<?> clazz = Person.class;
                //获取字节码文件中的指定参数的构造函数,此处为了去掉感叹号,加入了通配符
                Constructor<?> constructor = clazz.getConstructor();
作者: 小小太阳    时间: 2013-6-3 09:59
lpflpy 发表于 2013-5-27 13:08
package heimeTest;

public class Demo{

那个构造函数是不是必须用public修饰?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2