我正在學習關於JAVA的內部類,但我編寫這段代碼,當我編譯它時,我得到這個錯誤: Error:(84, 23) java: non-static variable this cannot be referenced from a static context
。關於JAVA的內部類
public class Main {
class Outer {
private String string;
Outer(String s) {
this.string = s;
}
public Inner inner() {
return new Inner();
}
class Inner {
@Override
public String toString() {
return string;
}
}
}
public static void main(String[] args) {
Outer outer = new Outer("yang");
// System.out.println(outer.inner().toString());
}
}
我已經更新了內部類到這,它的工作原理。
public class Main {
static class Outer {
private String string;
Outer(String s) {
this.string = s;
}
public Inner inner() {
return new Inner();
}
class Inner {
@Override
public String toString() {
return string;
}
}
}
public Outer outer(String s){
return new Outer(s);
}
public static void main(String[] args) {
// Main main = new Main();
Outer outer = new Outer("YANG");
System.out.println(outer.inner().toString());
}
}
'的System.out.println(outer.inner()的toString());'你去除評論後收到錯誤這條線? –
不,錯誤位於'外部外=新外(「楊」);' – BlackMamba
作爲「外部類」實例的對象存在於Main類的一個實例中。所以你需要創建Main類的實例來訪問'Outer class'。 – iMBMT