problem creating object of inner class in java
inner-classes, java, static, static-variables
Solution
`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();
}
}
Problem
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