public class StaticTest {
private static List<String> listA;
private static List<String> listB;
static {
listA = new ArrayList<String>();
listA.add("aaa");
setB(listB);
}
public static void main(String[] args) {
System.out.println(listA == null);
System.out.println(listB == null);
}
private static void setB(List<String> listB) {
if (listB == null) {
listB= new ArrayList<String>();
listB.add("bbb");
}
}
}
我不知道為什麼listB是空的,誰能詳細解釋下?
setB方法裡面的listB被你重新new了,就和private那個不是同一個對象了,所以listB是空的