反射第三步 : 通过反射获取某一个类的 构造器Constructor 并通过反射创建对象
2017-08-21 11:42
375 查看
package cn.sdut.reflectclass; import java.lang.reflect.Constructor; /* * 反射第三步 : 通过反射获取某一个类的 构造器Constructor 并通过反射创建对象 * * 带有 “Declared”的方法 无论什么访问权限的构造器都可访问 * 不带有 “Declared”的方法 只可访问public的构造器 * */ class A{ public A(){ System.out.println("无参构造器"); } public A(int a){ System.out.println("int 有参构造器"+a); } private A(String b,String a){ System.out.println("私有String 有参构造器"+b+a); } } public class ReflectDemo03 { public static void main(String[] args) throws Exception, SecurityException { //1: 获得A的字节码对象 Class clz = A.class; //2 : 获得所有 构造器getDeclaredConstructors()返回所有权限的构造器 getConstructors()返回public权限的构造器 Constructor[] c = clz.getDeclaredConstructors(); for (Constructor constructor : c) { System.out.println(constructor); } //3: 或得某一个 构造器 Constructor<A> c1 = clz.getDeclaredConstructor(String.class,String.class);//私有 System.out.println(c1); Constructor<A> c2 = clz.getConstructor();//公共 System.out.println(c2); //4:通过public构造器 创建对象 A a = c2.newInstance(new Object[]{});//创建对象时调用无参构造器 打印输出:"无参构造器" // 5: 通过private构造器 创建对象 c1.setAccessible(true);//设置成可以通过私有构造器 创建对象 A b = c1.newInstance(new Object[]{"1111","2222"});//打印输出: 私有String 有参构造器11112222 } }
相关文章推荐
- Reflect 通过反射获取自定义注解值给另外一个对象赋值
- 如何通过反射来创建对象?getConstructor()和getDeclaredConstructor()区别?
- Reflect 通过反射获取自定义注解值给另外一个对象赋值
- 通过反射可以获取Class的构造方法 通过构造方法创建对象
- Java反射之通过反射获取一个对象的方法信息
- Java 通过反射获取一个Field对象的泛型类型
- 如何通过反射来创建对象?getConstructor()和getDeclaredConstructor()区别?
- 通过反射机制创建一个构造方法中参数数量可变的对象
- java反射获取构造器以及调用构造器创建对象
- 通过构造函数反射--通过一个对象获取一个完整的包名和类名
- Reflect 通过反射获取自定义注解值给另外一个对象赋值
- 6.通过反射动态创建对象,获取属性,获取方法
- Java反射之通过反射获取一个对象的方法信息(实例代码)
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 通过反射获取类对象的成员函数、成员变量(只获取成员函数)、构造函数
- Java 编程下通过反射获取一个类中的方法名和对应参数名
- 通过反射创建动态代理对象(三)
- 反射第四步 : 通过反射获取某一个类的 方法 并通过反射调用
- Java 编程下通过反射获取一个类中的方法名和对应参数名
- 获取集合、数组后要判断为空的必要性以及根据构造器创建对象后不是null的证实