之前一直以为foreach可以遍历null 和空列表今天做测试如下:
看来对于null值 foreach是不会做判断的,
异常出在了22行刚好能说明这一点,那么我们再来看看空列表
看来对于空列表foreach并不会报異常不回进入到方法里
前两天用java写了个小程序,用来遍历磁盘的文件,结果跳出来个java nullpointerxception,一开始我以为是我程序的问题,找了半天没找出来错在了哪,当我把遍历的对象改成我的u盘时,程序运行正常,没有报出錯误,感觉有点懵逼。
我想要看看究竟是在遍历哪个文件的时候出错了,于是我将walk方法修改如下:
可以看到当我们遍历到 System Volume Information 这个文件夹时出现了涳指针异常,可是当我看了一下我e盘的目录时发现并没有这个文件夹,百度了一下才知道这是一个隐藏的系统文件夹,我们没有权限调用这个文件夹,当用这个文件夹的File对象调用file.listFiles()时返回的是null,这样问题就找出来了,
我们只需要在程序中加上一个判空操作即可