2012-02-02 62 views
-1

我不明白爲什麼編譯器不斷抱怨我的代碼如下:Java內部類訪問問題

operator1.push();這個調用似乎是合法的runStack類

是否有任何與Java中的靜態內部類有關的限制,我應該知道的?

+1

你應該已經發布了編譯器的投訴 – 2012-02-02 17:35:54

+3

,也應該遵循Java的命名約定,並重新格式化您的代碼,以理智。 – 2012-02-02 17:36:42

+0

您沒有顯示您收到的錯誤消息。 – 2012-02-02 17:37:19

回答

1

您需要提供參數operator1.push()和operator1.pop()

4

簡單地說:你push()pop()方法聲明爲參數,但你沒有向他們提供。只是從方法聲明中刪除參數使得您的代碼編譯 - 但它仍然是可怕的代碼。

我會忘記穿的那一刻,並專注於重組代碼:

  • 遵循Java命名約定
  • 不要過度使用嵌套類(如你在這裏)
  • 製作每個類都包含適當的方法,並考慮它們是靜態還是實例方法
  • 修復您的縮進

決定你準備再次嘗試這個線程代碼(在你確定瞭解什麼是靜態方法等之後),你應該重新從頭開始 - 它會比試圖拉動工作更快代碼出來,我害怕。

+0

是的....我同意。我有骯髒的代碼.....只是試圖去這裏快速和骯髒,所以我可以完成我的disgn計劃....只需要確認一些功能。 – user852415 2012-02-02 18:09:46

+1

@ user852415:很高興看到你已經刪除了「菜鳥」的侮辱。我希望你已經知道編寫「快速和骯髒」的代碼幾乎是不值得的。只要將這些類分開,給他們一個更好的名字,讓你的IDE縮進代碼等等,會讓你的代碼更容易理解 - 所以你可能已經能夠自己修復它了。 – 2012-02-02 18:25:47

0

當我嘗試編譯我收到以下錯誤

myStack.java:129: error: method push in class pushPop cannot be applied to given types; 
        operator1.push(); 
          ^
    required: pushPop 
    found: no arguments 
    reason: actual and formal argument lists differ in length 

這似乎很清楚

+0

正確的....只是運行代碼給你的錯誤...我不能相信我錯過了那一個。謝謝! – user852415 2012-02-02 18:02:34