newProxyInstance()方法

newProxyInstance方法是JDK动态代理的关键,需要传入类加载器、接口数组和InvocationHandler。该方法首先验证参数,克隆接口数组,获取安全经理,然后通过类加载器创建代理类的构造器并实例化,返回代理对象。确保类加载器和接口与目标类匹配是使用此方法时的重要注意事项。
摘要由CSDN通过智能技术生成

public static Object newProxyInstance(

ClassLoader loader,   Class<?>[] interfaces,    InvocationHandler h)

通过JDK源码可以看到newProxyInstance方法要求我们填三个参数,分别是:

1.类加载器

2.接口

3.动态代理

再来看详细的方法定义:

Objects.requireNonNull(h);

//要求代理对象不能是null

 final Class<?>[] intfs = interfaces.clone();

//克隆接口

 final SecurityManager sm = System.getSecurityManager();

//获得安全管理权限

 if (sm != null) {
 checkProxyAccess(Reflection.getCallerClass(), loader, intfs);

}

//检查代理权限

Class<?> cl = getProxyClass0(loader, intfs);
//获得代理类
 try {
    if (sm != null) {
     checkNewProxyPermission(Reflection.getCallerClass(), cl);
     }

  final Constructor<?> cons = cl.getConstructor(constructorParams);

//获得代理类的构造函数

//它返回的是 :getR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值