I am learning about the Inner Class in Java, but i write this code, when i compile it, i got this error:
Error:(84, 23) java: non-static variable this cannot be referenced from a static context
.
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());
}
}
I have update the Inner Class to this, and it works.
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());
}
}