Java 反射
来源:互联网 发布:灰色预测模型软件下载 编辑:程序博客网 时间:2024/06/15 20:43
1.什么是反射
程序可以访问、检测和修改本身状态或行为的一种能力。
2.反射的优缺点
优点:可以实现动态创建对象和编译,体现出很大的灵活性;
缺点:对性能有影响,使用反射基本是一种解释操作,这类操作总是慢与直接操作
3.反射的功能
在运行时判断任意一个对象所属的对象类。
在运行时构造任意一个类的对象。
在运行时判断任意一个类所具有的成员变量和方法。
在运行时调用任意一个对象的方法,通过反射甚至调用到private 方法。
生成动态代理。
(动态代理的原理就是,在程序运行时根据需要动态创建目标类的代理对象。需要实现InvocationHandler接口,
Proxy类:提供创建动态代理类和实例的静态方法)
4.Java 反射的API
Java.lang.Class类和Java.lang.reflect包中的Field、Constructor、Method、Array类
Class类:Class类的实例是表示正在运行的Java应用程序中的类和接口。
Field类: 提供有关类或接口的属性的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)属性或实例属性,简单的解释,可以把它看成一个封装反射类的属性的类
Constructor类:提供关于类的单个构造方法的信息以及对它的访问权限。这个类与Field类不同,Field类封装了反射类的属性,而Constuctor类封装了反射类的构造方法。
Method类:提供关于类或接口上单独某个方法的信息。它用来封装反射类方法的一个类。
Array类:提供了动态创建数组和访问数组的静态方法。该类中所有方法都是静态方法。
动态代理的小Demo
/**目标类*/
public class LiNingCompany implements ClothingFactory{
/**动态代理的处理类*/
/**客户类*/
在控制台打出来的结果:
- 【反射】JAVA反射机制
- JAVA 反射
- java 反射
- Java反射
- java反射
- java反射
- JAVA反射
- java 反射
- Java 反射
- java 反射
- Java反射
- java反射
- JAVA 反射
- java 反射
- Java反射
- java反射
- java 反射
- java 反射
- 对面向对象语言的理解
- oauth协议第三方登录()
- 【BZOJ4008】亚瑟王,概率DP
- 构造方法、析构方法的定义
- mysql_fetch_row()和mysql_fetch_array()之间有什么区别?
- Java 反射
- JQuery处理json与ajax返回JSON实例代码
- Codeforces Problem 709A Juicer(implementation)
- Amap location for React Native 高德定位
- 欢迎使用CSDN-markdown编辑器
- 关于莫名其妙的问题
- 正则匹配---C语言实现
- 常见的web安全攻击手段及解决办法
- for循环查询天数