假设我有一个以这种方式创建的ArrayLists的ArrayList:
ArrayList< ArrayList<String> > listOfListsOfStrings =
new ArrayList< ArrayList<String> >();
如果我打电话:
listOfListsOfStrings.clear();
稍后访问 listOfListsOfStrings 中的任何字符串的尝试是否会导致 java.lang.NullPointerException ?
答案 0 :(得分:3)
不,只会清除引用。如果不再存在对某个对象的引用,那么它可能会被垃圾收集,但是你没有得到NPE,因为无论如何你都无法获得对该对象的新引用。
答案 1 :(得分:1)
不,如果您仍然有对它们的外部引用,它将不会删除ArrayList
中的对象。 ArrayList.clear()对被引用的对象不做任何处理,除非它们是孤立的,在这种情况下你以后不会引用它们。