我正在處理雙端隊列的實現。我有一個Deque類,它有一個內部類節點來表示列表中的項目。我聲明中的Deque(本身就是一個公共類)類是這樣的:從單獨的類訪問內部類
public class Node(){
//
}
現在創建基本的對象創建語法新節點是deque的類本身很簡單:
Node newNode = newNode(arg1);
不過,我想能夠從單獨的類中聲明新節點,這是一個提供單元測試的DequeTest類。當我嘗試使用上面的語法創建一個新節點時,出現一個錯誤,指出Node類不可見。我正在開發一個預定義的API,所以我不能創建任何新的公共方法。返回新節點的私有createNode()方法是否最優?即使這似乎是行不通的,因爲編譯器甚至在使用Node關鍵字時會拋出錯誤。
內部類不是靜態的,所以你需要一個外部類的實例。你嘗試過'新的Deque()。new Node();'? – toniedzwiedz 2013-02-18 00:18:53
只需將內部類設爲靜態:http://stackoverflow.com/questions/1353309/java-static-vs-non-static-inner-class – 2013-02-18 00:21:01
您是否嘗試過http://docs.oracle.com/javase/tutorial /java/javaOO/nested.html? – djechlin 2013-02-18 00:36:23