Java反射机制
目录
一.回顾之间java程序如何使用类
二.反射概念及作用
1.定义
2.作用
三.Java反射相关API
1.Java反射相关的类主要包括
2.Class类
获得Class的三种方法:
Java中创建对象的方式:
获得构造方法:
获得类中的成员变量的方法:
对成员方法操作的基本案例:
演示通过属性的get和set方法,对类中私有属性进行赋值取值操作:
四.反射优缺点
1. 优点
2. 缺点
五.自定义java对象转json工具类
一.回顾之间java程序如何使用类
1.分析、确定类名、属性名、方法……创建类
public class Car{
private String name;
private String color;
……
public void run(){
}
}
2.创建类的对象
Car bm=new Car();
Car bc=new Car();
3.使用
bm.run();
bc.run();
一切都是已知的。在程序开发中,在哪需要使用哪个类的对象,就在哪创建这个类对象,去使用即可。这种写法对于业务开发是没有问题的。
但是在一些组件或者框架开发中,他们本身是不知道要处理哪些类。
例如:在web.xml中配置了哪些servlet类,tomcat就要创建哪些类的对象。
框架需要只写一套程序,就可以处理我们给他的任意类。框架是如何做到的?
答:以前已知类名的使用方法,可以看作是正向使用类。框架需要对任意类处理时,只是知道类的名字,通过类的名字动态去获取类中的信息。把这种对类的使用方式,称为反向使用。
二.反射概念及作用
1.定义
反射:在运行状态中,仅知道一个类名时,就可以动态获得类中信息,创建对象,调用对象成员的机制称为java反射机制。
2.作用
动态获取类的信息。
反射开始于Class类,通过Class类可以获得类中任意信息。(获得构造方法、成员变量、成员方法)
三.Java反射相关API
1.Java反射相关的类主要包括
• Class 类型
• Constructor 构造方法
• Method 方法
• Field 属性
• 除了Class外,其他类都位于java.lang.reflect包中
2.Class类
Class类的对象,表示当前正在运行中的类和接口。
一旦class文件被加载到内存,就会为其创建一个Class对象。任何类被 使用时都会创建一个Class对象。
Class类是Java反射机制的基础,通过Class类,可以得到一个类的基本 信息。
如何获得类中的信息:可以通过Class类来获得类中的信息
获得Class的三种方法:
Java中创建对象的方式:
①new ②反序列化 ③反射机制 ④对象克隆
获得构造方法:
获得类中的成员变量的方法:
对成员方法操作的基本案例:
演示通过属性的get和set方法,对类中私有属性进行赋值取值操作:
四.反射优缺点
1. 优点
● 1.增加程序的灵活性,可以在运行的过程中动态对类进行修改和操作
● 2.提高代码的复用率,比如动态代理
● 3.可以在运行时轻松获取任意一个类的方法、属性,并且还能通过反射进行动态 调用
2. 缺点
● 1.反射会涉及到动态类型的解析,导致性能要比非反射调用更低
● 2.使用反射技术通常要在一个没有安全限制的程序运行.。
● 3.反射可以绕过一些限制访问的属性或者方法,可能会导致破坏代码本身的抽象性.