Java:内部类中的内部类

时间:2013-04-22 12:36:36

标签: java class syntax declaration

如果之前已经提出这个问题,请原谅。 我在网上搜索并在堆栈溢出

案例:

我被困在我的java项目中,当我尝试使用时,编译器不会编译我的项目 在另一个内部的内部阶级。

代码:

public class outer  {
    public class middle {
        public class inner  {
            public int variable = "8";
        }
    }
}

声明:

我正在尝试声明这样的类:

outer outerObject = new outer();
outerObject.middle middleObject = outerObject.new middle();
outerObject.middleObject.inner innerObject = outerObject.middleObject.new inner();

编译结果:

source\start.java:8: error: cannot find symbol
                      outerObject.middleObject.inner innerObject = outerObject
.middleObject.new inner();
^

任何回复都将不胜感激!我的意图是不可能的,或者我只是做错了什么。

祝你有愉快的一天!

4 个答案:

答案 0 :(得分:4)

该行

outerObject.middleObject.inner innerObject = outerObject.middleObject.new inner();

应该是

outer.middle.inner innerObject = middleObject.new inner();

outerObject没有middleObject字段。不幸的是,Java允许使用变量表达式限定静态,因此您可以获得一些奇怪的代码实际编译。

如果您坚持Java命名约定,这可能会更清楚。

答案 1 :(得分:2)

您的代码永远不会编译为:

public int variable = "8";

此行应为

public int variable = 8;

首先改变这一行。

答案 2 :(得分:0)

使用此

public class outer  {
    public class middle {
        public class inner  {
            public int variable = 8;
        }
    }
    public static void main(String[] a) {
        outer outerObject = new outer();
        middle middleObject = outerObject.new middle();
        middle.inner innerObject = middleObject.new inner();
    }
}

答案 3 :(得分:0)

请试试这个:

    Outer outerObject = new Outer();
    Outer.middle middleObject = outerObject.new middle();
    Outer.middle.inner innerObject = middleObject.new inner();

您还需要更改:

 public int variable = "8";

 public String variable = "8";