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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© @ne_pie尒ce 中级黑马   /  2013-11-8 11:42  /  1057 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        public static void main(String[] args) {
                //创建动态类,并实例其对象
                Collection proxy2=(Collection) Proxy.newProxyInstance(Collection.class.getClassLoader(),
                                new Class[]{Collection.class},
                                new InvocationHandler() {
                                        @Override
                                        public Object invoke(Object proxy, Method method, Object[] args)
                                                        throws Throwable {
                                                return null;
                                        }
                                });
                proxy2.add("zxx");
                proxy2.add("lhm");
                proxy2.add("bxd");
                System.out.println(proxy2.size());
        }
运行结果:
Exception in thread "main" java.lang.NullPointerException        at com.sun.proxy.$Proxy0.add(Unknown Source)        at cn.itcast.day03.ProxyTest.main(ProxyTest.java:31)请问是哪里出了错误?

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

正序浏览
报错是空指针异常,传的值有为空的。
回复 使用道具 举报
小哥,你在invoke方法中返回的是null值,所以Collection的值就是null 你用null来调用size()方法,你说会报什么提升???
  1. public Object invoke(Object proxy,Method method, Object[] args)throws Throwable{
  2.                                 return null;        //这里返回值为null??这里应该返回一个Collection子类对象
  3.                         }
复制代码
回复 使用道具 举报
31行,空指针异常,某个调用方法的对象是空值

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
发帖时注意分类,你一发帖就是“提问结束”。别人都不用回答你了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马