黑马程序员技术交流社区

标题: Proxy创建代理中遇到一个问题,在第二行老有一个错误 [打印本页]

作者: 夏的四季    时间: 2014-8-6 12:14
标题: Proxy创建代理中遇到一个问题,在第二行老有一个错误
本帖最后由 夏的四季 于 2014-8-6 13:01 编辑
  1.         public static void MyProxy2(){
  2.                 Proxy.newProxyInstance(
  3.                                 Collection.class.getClassLoader(),
  4.                                 Collection.class,
  5.                                 new InvokeHandler() {
  6.                                                                                 
  7.                                         @Override
  8.                                         public OutputStream _invoke(String method, InputStream input,
  9.                                                         ResponseHandler handler) throws SystemException {
  10.                                                 // TODO Auto-generated method stub
  11.                                                 return null;
  12.                                         }                                
  13.                                 }
  14.                                 
  15.                                 );
  16.         }

复制代码
在第二行老有一个小红叉
作者: 执笔梦    时间: 2014-8-6 12:23
第二个参数是:被代理类实现的全部接口.
target.getClass().getInterfaces()
作者: shen7518    时间: 2014-8-6 12:25
newProxyInstance方法传入的第二个参数不对,应该是接口数组,将Collection.class改成new Class[]{Collection.class}
作者: 夏的四季    时间: 2014-8-6 12:47
shen7518 发表于 2014-8-6 12:25
newProxyInstance方法传入的第二个参数不对,应该是接口数组,将Collection.class改成new Class[]{Collecti ...
  1.         public static void MyProxy2(){
  2.                 Proxy.newProxyInstance(
  3.                                 Collection.class.getClassLoader(),
  4.                         //        Collection.class
  5.                                 new Class[]{Collection.class}
  6.                                 //Target.getClass().getInterfaces()
  7.                                  ,
  8.                                 new InvokeHandler() {
  9.                                                                                
  10.                                         @Override
  11.                                         public OutputStream _invoke(String method, InputStream input,
  12.                                                         ResponseHandler handler) throws SystemException {
  13.                                                 // TODO Auto-generated method stub
  14.                                                 return null;
  15.                                         }                               
  16.                                 }
  17.                                
  18.                                 );
  19.         }
复制代码

还是有红叉啊 怎么弄啊  是不是我的eclipse出问题了,可别的美问题 就这行代码有问题   好人做到底  帮我放上去看看吧  已经研究了好几天了,这马上就面试了 还没解决了这个问题:'(
作者: shen7518    时间: 2014-8-6 12:55
夏的四季 发表于 2014-8-6 12:47
还是有红叉啊 怎么弄啊  是不是我的eclipse出问题了,可别的美问题 就这行代码有问题   好人做到底  帮 ...

你的第三个参数的接口名也写错了,。。。。修改如下
   public static void MyProxy2(){
        Proxy.newProxyInstance(
                        Collection.class.getClassLoader(),
                //        Collection.class
                        new Class[]{Collection.class}
                        //Target.getClass().getInterfaces()
                         ,
                        new InvocationHandler() {

                                                        @Override
                                                        public Object invoke(Object proxy, Method method,
                                                                        Object[] args) throws Throwable {
                                                               
                                                                return null;
                                                        }
                                                                        
                                                      
                        }
                        
                        );
作者: 彬锐    时间: 2014-8-6 12:57
第二行要的应该是一个接口
可以获取接口或者new 一个CLASS数组里面匿名接口
作者: 夏的四季    时间: 2014-8-6 13:01
shen7518 发表于 2014-8-6 12:55
你的第三个参数的接口名也写错了,。。。。修改如下
   public static void MyProxy2(){
        Proxy.n ...

太太太感谢了
作者: shen7518    时间: 2014-8-6 13:13
夏的四季 发表于 2014-8-6 13:01
太太太感谢了

不客气。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2