我对一些java代码有点困难
class foo{
public bar() {
class innerA {}
class innerB {} // Only this one is valid because it was declare last
}
}
我的问题:在foo :: bar()中只能看到最后声明的内部类(innerB)。另外,我不能从另一个内部引用内部类。例如:
innerB{
private innerA _a; // Error
}
我的问题:在方法中你可以拥有的本地内部类的数量是否有限制?本地内部类可以实例化其他本地内部类对象吗?他们应该吗?
编辑:我错过了在我的IDE中打字并遇到了一些范围问题......再次感谢!
TIA, 小白
答案 0 :(得分:5)
请发布您真正尝试工作的代码,以及从Java编译器获得的错误消息。您发布的代码不是有效的Java。你想做的一切都是可行的。这是一个有效的例子:
public class Foo {
public void bar() {
class InnerA {
public void hello() {
System.out.println("Hello from InnerA");
}
public String getName() {
return "InnerA";
}
}
class InnerB {
private InnerA aInB = new InnerA();
public void hello() {
System.out.println("Hello from InnerB");
System.out.println("In InnerB, got name of InnerA : " + aInB.getName());
}
}
InnerA a = new InnerA();
InnerB b = new InnerB();
a.hello();
b.hello();
}
public static void main(String[] args) {
new Foo().bar();
}
}
运行它给出:
Hello from InnerA
Hello from InnerB
In InnerB, got name of InnerA : InnerA
答案 1 :(得分:0)
您忽略了为bar()
指定返回类型。