包含的封闭实例是必需的
以下是代码。 positionObj
是我尝试使用的对象,它给了我上述错误。
目前还不清楚为什么。
package toolBox;
import toolBox.Secretary.positionObj;
public class PositionManagement {
public static HashMap<String, Secretary.positionObj> main(String vArg){
positionObj newPosition=new positionObj();
}
}
答案 0 :(得分:119)
您尝试使用非静态内部positionObj
类,而没有Secretary
的实例属于它。
非静态内部类必须属于其父类的实例
您应该将positionObj
更改为普通类或静态内部类。
或者,您可以编写someSecretary.new positionObj()
来创建属于someSecretary
实例的内部类的实例。
答案 1 :(得分:7)
首先创建一个Outer类的对象。在这种情况下,我认为“秘书”。然后创建positionObj。像这样,
Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();
答案 2 :(得分:0)
正确的通用签名是
public static HashMap<String, positionObj> main(String vArg)
你不需要限定positionObj,因为你已经导入了它。
但是,我很确定主要方法必须符合下面的签名。如果您打算将main作为程序的主要方法,请将签名更改为
public static void main(String[] args) {...}
您可以创建一个单独的静态方法,该方法返回一个Map并从main调用它。
作为一个注释,所有类都应该以大写字母positionObj开头,应该是PositionObj。