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

Original source

Related problems