2012-02-02 104 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