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 中声明的 hashCodeequalstoString 方法的调用将被代理
    • java.lang.Object 继承的代理实例的其他公共方法不会被代理类覆盖,因此这些方法的调用行为与它们对 java.lang.Object 实例的行为相同

API

static

  • newProxyInstance
    • 返回指定接口的代理实例
  • isProxyClass
    • 判断入参Class是不是代理类
  • getInvocationHandler
    • 从入参代理对象上获取 InvocationHandler
posted @ 2023-09-05 09:26  流星<。)#)))≦  阅读(7)  评论(0编辑  收藏  举报