class Hello {
class Thing {
public int size;
Thing() {
size = 0;
}
}
public static void main(String[] args) {
Thing thing1 = new Thing();
System.out.println("Hello, World!");
}
}
产生错误:No enclosing instance of type text3 is accessible. Must qualify the allocation with an enclosing instance of type text3 (e.g. x.new A() where x is an instance of text3).
解决办法:将Thing类声明为一个非静态的内部类。这意味着它必须与Hello类的一个实例关联。
在代码中,我正试图从静态的上下文中创建一个Thing实例。这正是编译器所拒绝的。
三种解决办法:
将Thing更改为静态嵌套类。
static class Thing
创建一个Hello实例,然后创建一个Thing实例。
public static void main(String[] args) { Hello h = new Hello(); Thing thing1 = h.new Thing(); // hope this syntax is right, typing on the fly :P }
将Hello Thing移出Hello类。