如果之前已经提出这个问题,请原谅。 我在网上搜索并在堆栈溢出。
案例:
我被困在我的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();
^
任何回复都将不胜感激!我的意图是不可能的,或者我只是做错了什么。
祝你有愉快的一天!
答案 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";