A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© wuhyoung 中级黑马   /  2014-5-23 16:35  /  1251 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我今天写了一个代理类方法,但是运行会报错,在获取代理类方法的实例化对象的时候传递的参数不是接口类型,请大家帮忙一下说是为什么啊。

public Object getProxy() {

                Object obj = Proxy.newProxyInstance(

                target.getClass().getSuperclass().getClassLoader(),

                new Class[] { target.getClass().getSuperclass() },

                new InvocationHandler() {
                        @Override
                        public Object invoke(Object proxy, Method method, Object[] args)
                                        throws Throwable {
                                Object retVal = method.invoke(target, args);
                                return retVal;
                        }
                });

                return obj;
        }


其中target.getClass().getSuperclass().getClassLoader(),是父类的加载器。而new Class[] { target.getClass().getSuperclass() }也是Class[]数组,哪里有问题啊!!!!!

2 个回复

正序浏览
skill20 发表于 2014-5-23 16:38
target有定义吗?用代理的静态方法要传接口类型。

target我传递的是一个new ArrayList()
回复 使用道具 举报
本帖最后由 skill20 于 2014-5-23 16:43 编辑

target有定义吗?用代理的静态方法要传接口类型。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马