Pistachiout的博客

每天多学一点知识,就少写一行代码

Java反射学习笔记

1.反射概念

JVM为每个加载的class创建了对应的Class实例,并在实例中保存了该class的所有信息,通过Class实例获取class信息的方法称为反射(Reflection)

JVM总是动态加载class,可以在运行期根据条件来控制加载class。

在这里插入图片描述

2.获取字段

在这里插入图片描述
在这里插入图片描述

先获取Class实例,再获取Field实例,然后调用Field.setAccessible(true),用Field.get(Object)获取指定实例的指定字段的值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.调用方法

在这里插入图片描述
在这里插入图片描述

4.调用构造方法

在这里插入图片描述
在这里插入图片描述

5.获取继承关系

在这里插入图片描述

6.动态代理

Java标准库提供了一种动态代理(Dynamic Proxy)的机制:可以在运行期动态创建某个interface的实例。直接通过JDK提供的一个Proxy.newProxyInstance()创建了一个Hello接口对象。这种没有实现类但是在运行期动态创建了一个接口对象的方式,我们称为动态代码。JDK提供的动态创建接口对象的方式,就叫动态代理。
在这里插入图片描述

-------------本文结束感谢您的阅读-------------