之前一直以为动态就是用反射生成了被代理对象的新类,后面发现代理类都需要继承proxy,用反射生成的是proxy类
原因:
1,如果用反射生成被代理类的新类,那就很麻烦,里面的私有属性和方法之类的都要遍历获取并且重新定义,效率太低了。而且这样和在原本的代理类上修改代码没什么区别(这样太蠢了);
2,生成的是proxy对象 然后里面新建一个方法,这方法里面传入被代理类对象,这样就可以实现了之前原有的功能,还要注意的是生成的proxy对象是要实现和被代理对象一样的接口的,这是一种规范(个人理解是为了保证代理类有被代理类的功能);