包含<my reference>的封闭实例是必需的

包含的封闭实例是必需的

下面是代码。 positionObj是我正在尝试使用的对象,它给了我上面的错误。

目前还不清楚为什么。

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

你正试图使用​​非静态的内部positionObj类,而没有一个Secretary实例属于。
一个非静态的内部类必须属于它的父类的一个实例

你可能应该把positionObj改成一个普通的类或静态的内部类。

或者,你可以写一些someSecretary.new positionObj()来创build一个属于someSecretary实例的内部类的实例。

正确的通用签名将是

 public static HashMap<String, positionObj> main(String vArg) 

你不需要限定positionObj,因为你已经导入了它。

但是,我很确定一个主要的方法必须符合下面的签名。 如果你打算主要是你的程序的主要方法,更改签名

  public static void main(String[] args) {...} 

你可以创build一个单独的静态方法,返回一个Map并从main中调用它。

注意,所有的类都应该以大写字母positionObj开头,应该是PositionObj。

首先创build一个Outer类的对象。 在这种情况下,我认为“秘书”。 然后创buildpositionObj。 喜欢这个,

 Secretary x = new Secretary(); Secretary.positionObj y = x.new positionObj();