(1)看到上述报错的第一反应是,越界了。List.size()为0,但却引用了index为0的值,并且此时List不为空。
(2)那什么情况下会出现List不为null,但是List.size() == 0呢?下面给出示例:
List list = new ArrayList();
此时list被创建,即list不为null,但是还没有被赋值,则list.size() == 0。
所以在使用List时应当同时判断(list != null && list.size() > 0)。
(3)此种问题的解决方案:在使用list.get(0 ...... N)进行取值前对list和list.size()进行判断。