反射大法好,反射中的Class类中newIntance()方法和constructor 中newIntance()方法的区别

来源:互联网 发布:办公软件word视频教程 编辑:程序博客网 时间:2024/05/20 05:23

* 敏于事而慎于言。(孔子)*

        //获得字节码文件对象        Class  c =  Class.forName("reflect.Demo");        //获取到带参数的构造对象        Constructor  d =  c.getConstructor(int.class);        //通过Class里的newInstance() 创建对象        //Demo d = (Demo)c.newInstance();        Demo  dd= (Demo) d.newInstance(1);         //获取到方法的对象        Method  m = c.getMethod("print",String.class);        Method m1 = c.getDeclaredMethod("show",int.class);        //调用即可        m.invoke(dd,"hh");        //私有的设置显示即可        m1.setAccessible(true);        m1.invoke(dd, 1);    }}class Demo {    public Demo(){}    public Demo(int x) {    }    private void show(int a) {        System.out.println(1111);    }    public void print(String str ){        System.out.println("Hello "+str);    }}

反射中的Class类中newIntance()方法和constructor 中newIntance()方法的区别:
Class中的newIntance()方法只能生成无参的公共构造对象
constructor 中newIntance()方法什么都可以搞.私有,带参,无参.

0 0