的構造函數我有一個內部的輔助類,我想它的每一個新的實例添加到地圖中包含類,像這樣:使用「本」在最後一類
public class SomeService {
private final Map<Integer, ServiceTask> pendingTasksByKey;
private class ServiceTask {
private ServiceTask(int key) {
// initialization...
pendingTasksByKey.put(key, this);
}
}
// the rest of the code follows
}
當我這樣做時,NetBeans抱怨在構造函數中使用this
。好的,我明白了,在一般情況下這是一種危險的做法,因爲有人可以延長我的課程,然後我會泄漏this
,指的是未完成初始化的對象。我不想關閉這個警告,所以我認爲我可以讓班級final
。這樣,沒有人能夠擴展我的課程,因此使用this
應該是非常安全的,因爲此時初始化已完成。但是,即使我將內部類標記爲final
,NetBeans仍會顯示警告。
我是對的還是有我錯過的東西?它只是NetBeans太挑剔了嗎?除了可能的多線程內存模型問題之外,我想不出任何這種this
用法的危險。
Eclipse中沒有警告。對我來說看起來很好。 –