Java反射机制
2015-10-10 22:01
316 查看
反射机制概念:
那么Java是如何动态的获取对象的方法和属性的呢?
获取class对象的三种机制:
1.通过Object类的getClass()方法。例如:
Class c1 = new String(“”).getClass();
2.通过Class类的静态方法——forName()来实现
Class c2 = Class.forName(“MyObject”);
3.如果T是一个已定义的类型的话,在java中,它的.class文件名:T.class就代表了与其匹配的Class对象,例如:
Class c3 = Manager.class;
Class c4 = int.class;
Class c5 = Double[].class;
通过class对象获取类的方法和属性:
获取方法:
getDeclaredMethods()
获取所有的方法
getDeclaredMethod(“方法名”,参数类型.class,……)
获得特定的方法
获取构造方法:
getDeclaredConstructors()
获取所有的构造方法
getDeclaredConstructor(参数类型.class,……)
获取特定的构造方法
获取成员:
getDeclaredFields()
获取所有的成员变量
getDeclaredField(“id”);
获取特定的成员
[code]J***A反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
那么Java是如何动态的获取对象的方法和属性的呢?
[code]JVM需要哪个类,classLoder就会去加载这个类,让后根据.class文件生成一个独一无二的class对象,该class对象记载了该类所有的属性和方法;让后JVM就根据该类的实例进行一些列的操作 class对象一般都是由虚拟机调用的(虽然我们也可以创建),基于此,实现了Java的反射机制
获取class对象的三种机制:
1.通过Object类的getClass()方法。例如:
Class c1 = new String(“”).getClass();
2.通过Class类的静态方法——forName()来实现
Class c2 = Class.forName(“MyObject”);
3.如果T是一个已定义的类型的话,在java中,它的.class文件名:T.class就代表了与其匹配的Class对象,例如:
Class c3 = Manager.class;
Class c4 = int.class;
Class c5 = Double[].class;
通过class对象获取类的方法和属性:
获取方法:
getDeclaredMethods()
获取所有的方法
getDeclaredMethod(“方法名”,参数类型.class,……)
获得特定的方法
获取构造方法:
getDeclaredConstructors()
获取所有的构造方法
getDeclaredConstructor(参数类型.class,……)
获取特定的构造方法
获取成员:
getDeclaredFields()
获取所有的成员变量
getDeclaredField(“id”);
获取特定的成员
相关文章推荐
- Java异常分析
- Java 正则表达式学习总结和一些小例子
- 银联在线 网关支付 (JAVA版)
- 银联在线 网关支付 (JAVA版)
- 安装Eclipse Maven插件的几种方法
- 记录spring切面代码,
- java8笔记一
- eclipse workspace出错而导致启动不了
- JAVA_SE基础——41.instanceof关键字(运算符)
- Spring常用注解
- java快速教程系列(转载于博客园--作者:vamei)
- Android项目从Eclipse迁移到Android Studio的过程和一些问题汇总
- 第一阶段考核中的JAVA简答题
- Struts2中配置默认Action
- struts 2配置文件的包继承
- JAVA项目出现红色叹号
- struts 2配置两种的结果
- 内部排序(java实现)
- Spring Boot实践应用开发(7)
- Java语言的基本结构