20230529 java.lang.reflect.Proxy
介绍
java.lang.reflect.Proxy
public class Proxy implements java.io.Serializable
- 代理类是在运行时创建的类,它实现了指定的接口列表,称为代理接口
- 每个代理实例都有一个关联的调用处理程序对象,该对象实现接口
InvocationHandler
- 代理类具有以下属性:
- final
- 继承
java.lang.reflect.Proxy
- 在其Class对象上调用getInterfaces将返回一个包含相同接口列表的数组
- 代理类的
java.security.ProtectionDomain
与引导类加载器加载的系统类相同
- 代理实例具有以下属性
instanceof
接口列表中的接口返回 true- 代理实例上的接口方法调用被分派到
InvocationHandler.invoke
- 可以通过调用
InvocationHandler::invokeDefault
来调用代理接口的默认方法 - 对代理实例上
java.lang.Object
中声明的hashCode
、equals
或toString
方法的调用将被代理 - 从
java.lang.Object
继承的代理实例的其他公共方法不会被代理类覆盖,因此这些方法的调用行为与它们对java.lang.Object
实例的行为相同
API
static
- newProxyInstance
- 返回指定接口的代理实例
- isProxyClass
- 判断入参Class是不是代理类
- getInvocationHandler
- 从入参代理对象上获取
InvocationHandler
- 从入参代理对象上获取