Here is the code.
public class Test {
class InnerClass{
}
public static void main(String[] args){
InnerClass ic = new InnerClass();
}
}
It says the error message
non-static variable this cannot be referenced from a static context
after creation of object ic.
Can anyone give me the reason?
Thanks
InnerClass
needs to be static
itself, i.e.
public class Test {
static class InnerClass{
}
public static void main(String[] args){
InnerClass ic = new InnerClass();
}
}
If InnerClass
is not static
, it can only be instantiated in the context of a parent instance of Test
. The rather baroque syntax for this is:
public class Test {
class InnerClass{
}
public static void main(String[] args){
Test test = new Test();
InnerClass ic = test.new InnerClass();
}
}