Java反射reflect学习笔记_2:反射类的构造函数
来源:互联网 发布:网络覆盖方案 编辑:程序博客网 时间:2024/06/10 03:42
//===================================================
// 反射类的构造函数
//===================================================
<!--
| 首先,通过Class获取类的字节码
| Class clazz = Class.forName("com.marer.reflect.Person");
|
| 然后,利用Constructor创建对象
| Constructor c = clazz.getConstructor(null);//获取无参的构造函数
| Constructor c = clazz.getConstructor(String.class);//获取参数为String的构造函数
| Constructor c = clazz.getConstructor(String.class, int.class);//获取参数为String,int的构造函数
| Constructor c = clazz.getDeclaredConstructor(List.class);//获取隐藏为private的构造函数
| c.setAccessible(true);//暴力反射
|
| 创建对象的另外一种途径,反射出类的无参构造函数并创建对象
| Class clazz = Class.forName("com.marer.reflect.Person");
| Person p = (Person) clazz.newInstance();
| 但是当无参的构造函数为private或不存在的时候,反射抛异常
|转载请注明出处:http://blog.csdn.net/nthack5730/article/details/49822819
| 但是可以通过暴力反射获取类的隐藏构造函数:
| Constructor.setAccessible(true);
// 反射类的构造函数
//===================================================
<!--
| 首先,通过Class获取类的字节码
| Class clazz = Class.forName("com.marer.reflect.Person");
|
| 然后,利用Constructor创建对象
| Constructor c = clazz.getConstructor(null);//获取无参的构造函数
| Constructor c = clazz.getConstructor(String.class);//获取参数为String的构造函数
| Constructor c = clazz.getConstructor(String.class, int.class);//获取参数为String,int的构造函数
| Constructor c = clazz.getDeclaredConstructor(List.class);//获取隐藏为private的构造函数
| c.setAccessible(true);//暴力反射
|
| 创建对象的另外一种途径,反射出类的无参构造函数并创建对象
| Class clazz = Class.forName("com.marer.reflect.Person");
| Person p = (Person) clazz.newInstance();
| 但是当无参的构造函数为private或不存在的时候,反射抛异常
|转载请注明出处:http://blog.csdn.net/nthack5730/article/details/49822819
| 但是可以通过暴力反射获取类的隐藏构造函数:
| Constructor.setAccessible(true);
-->
//解剖类的构造函数,创建类的对象public class Demo2 {//反射构造函数:public Person()@Testpublic void test1() throws Exception{Class clazz = Class.forName("com.marer.reflect.Person");Constructor c = clazz.getConstructor(null);Person person = (Person)c.newInstance(null);System.out.println(person.str);}//反射构造函数:public Person(String name)@Testpublic void test2() throws Exception{Class clazz = Class.forName("com.marer.reflect.Person");Constructor c = clazz.getConstructor(String.class);Person person = (Person)c.newInstance("测试成功");System.out.println(person.str);}//反射构造函数:public Person(String name, int age)@Testpublic void test3() throws Exception{Class clazz = Class.forName("com.marer.reflect.Person");Constructor c = clazz.getConstructor(String.class, int.class);Person person = (Person)c.newInstance("测试成功",123);System.out.println(person.str);}//反射四有的构造函数:private Person(List list)@Testpublic void test4() throws Exception{Class clazz = Class.forName("com.marer.reflect.Person");Constructor c = clazz.getDeclaredConstructor(List.class);c.setAccessible(true);//暴力反射Person p = (Person) c.newInstance(new ArrayList());System.out.println(p.str);}//创建对象的另外一种途径,反射出类的无参构造函数并创建对象//但是当无参的构造函数为private或不存在的时候,反射抛异常@Testpublic void test5() throws Exception{Class clazz = Class.forName("com.marer.reflect.Person");Person p = (Person) clazz.newInstance();System.out.println(p);System.out.println(p.str);}}
3 0
- Java反射reflect学习笔记_2:反射类的构造函数
- Java反射reflect学习笔记_3:反射类的方法
- Java反射reflect学习笔记_1:反射的简述
- Java Reflect 反射笔记
- Java 反射(reflect)学习笔记
- Java学习笔记-反射(reflect)
- java.lang.reflect反射学习
- Class.forName java.lang.reflect.Constructor反射调用有参构造函数和无参构造函数的方法
- Java的反射reflect使用
- Java学习笔记23 反射机制(reflect…
- 黑马程序员——【Java反射学习】方法的反射/成员变量的反射/构造函数的反射
- 反射类的构造函数
- 反射 类的构造函数
- Java的反射(reflect)机制的学习
- 笔记:反射Reflect
- 黑马程序员--Java基础加强学习笔记之Class类、反射(Reflect)
- 构造函数的反射
- java 反射机制 reflect
- android面试攻略(1)
- 配置RHEL6使用CentOS6的yum源
- 由S_ISDIR学到的
- Android总结篇系列:Android Service
- 旋转数组的最小数字
- Java反射reflect学习笔记_2:反射类的构造函数
- Struts2系统学习(10)文件上传与下载案例及原理分析
- HttpClient使用详解
- MD5杂凑算法
- Java输出特定时间段特定格式时间信息
- Android View事件分发处理
- prime算法-最小生成树算法
- iOS8 自定义UITabBar (使用popToViewController导致的UITabBarButton重叠的问题)
- 定时任务——表达式