A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 幺零夭夭 中级黑马   /  2015-11-7 22:25  /  302 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class ReflectDemo2 {
        public static void main(String[] args) throws Exception {
                createNewObject_2();
        }
        public static void createNewObject_2() throws Exception {   
                //  cn.itcast.bean.Person p = new cn.itcast.bean.Person("小强",39);      
                /** 当获取指定名称对应类中的所体现的对象时,   
                 * 而该对象初始化不使用空参数构造该怎么办呢?   
                 * 既然是通过指定的构造 函数进行对象的初始化,   
                 * 所以应该先获取到该构造函数。 通过字节码文件对象即可完成。   
                 * 该方法是:getConstructor(paramterTypes);   
                 */   
                String name = "cn.itcast.bean.Person";   
                //找寻该名称类文件,并加载进内存,并产生Class对象。  
                Class clazz = Class.forName(name);
                //获取到了指定的构造函数对  象。   
                Constructor constructor = clazz.getConstructor(String.class,int.class);      
                //通过该构造器对象的newInstance方法进行对象的初始化。   
                Object obj = constructor.newInstance("小明",38);  
        }
        public static void createNewObject() throws ClassNotFoundException, InstantiationException, IllegalAccessException{      
                //早期:new时候,先根据被new的类的名称找寻该类的字节码文件,并加载进内存,
                // 并创建该字节码文件对象,并接着创建该字节文件的对应的Person对象.
                // cn.itcast.bean.Person p = new cn.itcast.bean.Person();   
                //现在:   
                String name = "cn.itcast.bean.Person";   
                //找寻该名称类文件,并加载进内存,并产生Class对象。   
                Class clazz = Class.forName(name);   
                //如何产生该类的对象呢?   
                Object obj  = clazz.newInstance();   
                }


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马