2012-11-14 58 views
2

我環顧四周,一切,似乎我有正確的語法:爪哇 - 在嵌套類的情況下使對象

QueueOfChars queue = new QueueOfChars(); 
QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode(); 

不過,我得到一個編譯錯誤與charNode對象我嘗試創建

Driver3.java:22: error: constructor QueueOfCharsNode in class
QueueOfChars.QueueOfCharsNode cannot be applied to given types;
QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode();


required: char
found: no arguments
reason: actual and formal argument lists differ in length
1 error

它得到這個錯誤,因爲我有一個QueueOfCharsNode(字符CH)

public class QueueOfChars{ 

     public class QueueOfCharsNode{ 
     QueueOfCharsNode next; 
     QueueOfCharsNode prev; 
     char c; 

     public QueueOfCharsNode(char ch){ //line causing the error 
      c = ch; 
      next = prev = null; 
     } 

我如何得到它只是[R當我爲它創建對象時,請閱讀「公共類QueueOfCharsNode」行?

回答

5

您缺少一個無參數構造函數。

你需要一個構造函數聲明如下:

public QueueOfCharsNode() { } 

QueueOfCharsNode類。

1
QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode(); 

你的內部類QueueOfCharsNode需要在其構造函數中使用char asan參數。 嘗試

QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode('c');//some character that you wanna pass 

或者喜歡你的內部類創建一個無參數的構造函數。

public UueueOfCharsNode() { 

} 

QueueOfChars.QueueOfCharsNode charNode = queue.new QueueOfCharsNode(); 

會在這種情況下工作