本帖最后由 杨志 于 2012-7-30 13:25 编辑
本人自己刚写一个个动态代理的源代码。- public static void main(String[] args) {
- Person person = new Person();
- MyProxy myProxy = new MyProxy(person);
- // System.out.println(Proxy.newProxyInstance(Person.class.getClassLoader(),Person.class.getInterfaces(),
- // myProxy));
- Human personProxy = (Human) Proxy.newProxyInstance(
- Person.class.getClassLoader(), Person.class.getInterfaces(),
- myProxy);
- // 以下代码则会报错。
- // Person personProxy =
- // (Person)Proxy.newProxyInstance(Person.class.getClassLoader(),Person.class.getInterfaces(),
- // myProxy);
- personProxy.save();
- }
复制代码 其中的Person是Human的实现类。
原因是;为什么下面的用Person强制转换会有错。必须去用它的父接口Human转换,就能通过。
其中代理类确实是Person类。求解答!
谢谢! |