[i=s] 本帖最后由 wugy315 于 2016-8-24 13:43 编辑 写一个Android项目时遇到的问题。 在当前Activity类中声明了一个packageName集合【List<String> packageName = null;】, 而后在onCreat方法中调用该集合对象进行重新赋值【packageName = new ArrayList<String>()】。 同时,在onCreat中设置button监听,当某个button按下后,对当前集合对象添加元素。 而后,在另一个方法中,当packageName集合判断不为空时,执行相关操作并清空该集合对象中的元素。 此处,我清空集合使用的是packageName = null语句,给packageName赋值为空。 这样做乍一看是没有问题的。然而实际上,此时的packageName已经不是之前的ArrayList对象了,而是空对象(null)。 因此。当我再次点击Button时,会报nullPointerException。空指针异常。为什么呢?因为当前对象已经改变了,无法进行元素添加。 所以,当清空集合对象中的元素时,正确的做法是调用clear方法,即packageName.clear()。 只有这样做,才能使得对象不产生变化,当下一次点击button时,还能正常添加元素。 以上。 2016.08.24 ----------------------------- 补充:当packageName = new ArrayList<String>()时,即便集合中无元素,packageName != null。