我只是想知道在將它添加到數組後,我們是否應該做obj = null
。 請注意,這是一個特殊情況,請閱讀以下內容。我應該在arraylistist.add(obj)後做obj = null
首先,讓我們考慮A
類是這樣的:
public class A {
public void doSomething(B object) {
// some code here
}
}
和類B
這樣的:
public class B {
private final A a;
public B(A a) {
this.a = a;
}
public void aMethod() {
// Does something here
a.doSomething(this);
}
}
到現在爲止一切都OK。 B
類型的對象可以調用A
的doSomething()
方法根據那裏的某些數據編輯對象。
現在讓我們考慮以下情況:doSomething()
將對象B添加到數組列表中。現在,這要是這些代碼應該使用:
public void doSomething(B b) {
arrayList.add(b);
b = null;
}
// or
public void doSomething(B b) {
arrayList.add(b);
}
在第一doSomething()
我們設定的對象爲null,這意味着該方法調用者變爲零。那麼,對我來說這沒關係doSomething()
電話是我需要在我的aMethod()
的最後一個聲明。但是這樣做好嗎?
不,方法調用者不會爲空。 Java是通過價值傳遞的。 – markspace
你需要閱讀[Demeter法則](http://en.wikipedia.org/wiki/Law_of_Demeter)。 –
我很困惑,你想通過設置'b = null;'來完成什麼?沒有任何情況可以做到這一點,但如果你解釋爲什麼你認爲這是一個好主意或者你認爲它做了什麼,那麼我或其他人可以幫助你瞭解爲什麼它在事情的宏偉計劃中基本上什麼都不做。 –