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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hjqfornew 中级黑马   /  2016-12-27 09:22  /  1362 人查看  /  9 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class Demo23_proxy {

        public static void main(String[] args) {

                ArrayList<Integer> al=new ArrayList<>();
               
                MyInvocationHandler mih=new MyInvocationHandler(al);
               
                List<Integer> list= (List<Integer>) Proxy.newProxyInstance
                                (al.getClass().getClassLoader(), al.getClass().getInterfaces(), mih);
               
                list.add(132);
        }

}


import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.util.concurrent.TimeUnit;

public class MyInvocationHandler implements InvocationHandler {
        private Object ob;
       
        public MyInvocationHandler(Object ob) {
                super();
                this.ob =  ob;
        }

        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                long start=System.currentTimeMillis();
                 TimeUnit.MILLISECONDS.sleep(10);
                method.invoke(ob, args);
                long end=System.currentTimeMillis();
                System.out.println("方法运行时间为:"+(end-start)+"毫秒");
                return null;
        }

}
运行错误空指针异常,NullPointerException。哪位大神帮忙看一下。

9 个回复

倒序浏览
是不是你invoke方法返回的是null,add方法返回值是boolean。
null拆箱导致的空指针异常
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
没说的很明白,就是返回的一个是object的null,一个返回值是基本数据类型boolean,然后jdk1.5特性拆装箱,拆箱null导致报空指针异常。
我没学到proxy呢,我看你代码猜的,你去试下。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
我有的英语单词可能打错了,人懒,见谅见谅
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
396095936 发表于 2016-12-27 10:33
是不是你invoke方法返回的是null,add方法返回值是boolean。
null拆箱导致的空指针异常
...

果然是这样,谢谢
回复 使用道具 举报
396095936 发表于 2016-12-27 10:33
是不是你invoke方法返回的是null,add方法返回值是boolean。
null拆箱导致的空指针异常
...

果真是这样的,谢谢
回复 使用道具 举报
新人表示看不懂    怎么办
回复 使用道具 举报
hjqfornew 发表于 2016-12-28 02:37
果然是这样,谢谢

不谢不谢。。已经决定学c了,加油啊哥们打好基础
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
相反人生 发表于 2016-12-28 18:19
新人表示看不懂    怎么办

很快就可以看懂了
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马