Java内部类访问问题

时间:2012-02-02 17:33:20

标签: java multithreading

我无法弄清楚为什么编译器会在下面抱怨我的代码:

operator1.push();这个调用似乎来自runStack类

我是否应该注意与Java中的静态内部类相关的任何限制?

3 个答案:

答案 0 :(得分:4)

简单地说:您的push()pop()方法被声明为具有参数,但您并未提供参数。只是从方法声明中删除参数会使您的代码编译 - 但它仍然是可怕的代码。

我暂时忘记了线程,并专注于重新组织代码:

  • 遵循Java命名约定
  • 不要过度使用嵌套类(就像你在这里一样)
  • 让每个类包含适当的方法,并考虑它们是静态还是实例方法
  • 修复缩进

当你决定你准备好再次尝试这个线程代码时(在你确定了解静态意味着什么之后),你应该从头开始 - 它比试图将工作代码从混乱中拉出来更快,我很害怕。

答案 1 :(得分:1)

您需要为运算符1.push()和运算符1.pop()提供参数

答案 2 :(得分: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

这似乎很清楚