黑马程序员技术交流社区

标题: 如何用反射去创建一个对象,有2种方式,尽量用代码去体现 [打印本页]

作者: world.net    时间: 2015-6-18 21:22
标题: 如何用反射去创建一个对象,有2种方式,尽量用代码去体现
如何用反射去创建一个对象,有2种方式,尽量用代码去体现
作者: 窗外的雪儿飞    时间: 2015-10-12 16:05
import java.lang.reflect.Constructor;
class Test
{
        public static void main(String[] args) throws Exception
        {       
                //第一种:获取字节码文件对象
                Class<?> c1 = Class.forName("Person");
                //获取构造器对象
                Constructor<?> con1 = c1.getConstructor(String.class,int.class);
                //创建对象
                con1.newInstance("张三",26);
                //第二种:获取字节码文件对象
                Class<Person> c2 = Person.class;
                //获取构造器对象
                Constructor<Person> con2 = c2.getConstructor(String.class,int.class);
                //创建对象
                con2.newInstance("李四",25);
        }
}
//用来测试反射的类
class Person
{
        private String name;
        private int age;
        public Person(){};
        public Person(String name,int age)
        {
                this.name = name;
                this.age = age;
                System.out.println(name+"****"+age);
        }
}
作者: zzh1026    时间: 2015-10-12 17:29
使用暴力反射,因为理论上是不知道到底有没有私有化
首先是获取字节码文件:有三种方法
然后是获取构造器
接下来创建对象
作者: heshiwei    时间: 2015-10-12 17:30
楼上是正确的
作者: syusouki    时间: 2015-10-12 19:24
创建对象就一种方式啊,获取字节码有3种方式
作者: xiao_D    时间: 2015-11-2 13:13
syusouki 发表于 2015-10-12 19:24
创建对象就一种方式啊,获取字节码有3种方式

创建对象就只有一种方式吗啊   这样题目会不会太简单了    只有通过获取字节码文件获取构造器来创建吗
作者: 刘辰阳    时间: 2015-11-2 13:32
路过!!!!




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