为了账号安全,请及时绑定邮箱和手机立即绑定

moveable.getClass().getName()

Moveable moveable = (Moveable)Proxy.newProxyInstance(cls.getClassLoader(),cls.getInterfaces(),handler);
System.out.println("产生动态代理实例的类名称 = [" + moveable.getClass().getName() + "]");

Proxy类的

newProxyInstance

方法,再反射回去 找类的名字,不应该是Proxy吗?为什么是$Proxy0?

正在回答

1 回答

@CallerSensitive
public static Object newProxyInstance(ClassLoader loader,
                                      Class<?>[] interfaces,
                                      InvocationHandler h)
    throws IllegalArgumentException{
    ...
    return cons.newInstance(new Object[]{h});
    }
    这个方法返回的是一个对象,一个动态生成的代理类的对象,moveable.getClass().getName()得到的是动态生成的这个代理类的名字。
0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
模式的秘密---代理模式
  • 参与学习       54912    人
  • 解答问题       98    个

本节课程将带你领略Java编程语言中代理模式的奥妙

进入课程

moveable.getClass().getName()

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信