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();
}
}
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.
First create an object of Outer class. In this case I think "Secretary". Then create positionObj. Like this,
Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();
The correct generic signature would be
public static HashMap<String, positionObj> main(String vArg)
you dont need to qualify positionObj since you already import it.
However, I am pretty sure a main method must conform to the signature below. If you intend to have main be the main method for your program, change the signature to
public static void main(String[] args) {...}
you can create a separate static method that returns a Map and invoke it from main.
As a note, all classes should begin with a capital letter, positionObj, should be PositionObj.
精彩评论