我有這個類:「NullPointerException異常」時,多次提到訪問我的方法
public class A {
List l;
public String method() {
l = new ArrayList();
try {
.....
l.add(new Integer(5));
.....
}
catch (Exception e) {
......
}
finally {
if(l!=null)
l=null;
}
具有運行相同的模板許多用戶包含(gtmpl):
A a = new A();
a.method();
的問題是在在另一個用戶執行l=null;
之後,用戶直接到達l.add(new Integer(5));
的情況。我得到一個NullPointerException
。我不明白爲什麼?我認爲每個線程都會被分配一個列表?哪裏不對?
編號線程將共享相同的列表l。 A的不同_instances_將有不同的列表。 – tbsalling
你確定NPE是來自那一行嗎,不是在'add'方法裏面? – Joe
@tbsalling你能解釋一下嗎?我不同意。如果新對象是作爲局部變量在線程中創建的,則它將爲每個線程創建一次。 – Joe