An enclosing instance that contains <my reference> is required

jason m picture jason m · Nov 28, 2010 · Viewed 88.3k times · Source

An enclosing instance that contains is required

Below is the code. positionObj is the object that I am trying to use and it is giving me the above error.

It's unclear why.

package toolBox;
import toolBox.Secretary.positionObj;    

public class PositionManagement {
    public static HashMap<String, Secretary.positionObj> main(String vArg){
        positionObj newPosition=new positionObj();
    }
}

Answer

SLaks picture SLaks · Nov 28, 2010

You're trying to use the non-static inner positionObj class without an instance of Secretary for it to belong to.
A non-static inner class must belong to an instance of its parent class

You should probably change positionObj to a normal class or a static inner class.

Alternatively, you can write someSecretary.new positionObj() to create an instance of the inner class that belongs to the someSecretary instance.