2010-11-28 36 views
64

包含需要包含一个外围实例<我的参考>需要

下面是代码的外围实例。 positionObj是我尝试使用的对象,它给了我上述错误。

现在还不清楚为什么。

package toolBox; 
import toolBox.Secretary.positionObj;  

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

回答

96

您正尝试使用非静态的内部positionObj类,而不包含Secretary的实例。
非静态内部类必须属于其父类的一个实例

您应该将positionObj更改为普通类或静态内部类。

或者,您可以编写someSecretary.new positionObj()来创建属于someSecretary实例的内部类的实例。

0

正确的一般签名会

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

需要限定positionObj因为你已经导入。

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

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

您可以创建一个返回地图一个单独的静态方法,并从主调用它。

作为说明,所有类都应以大写字母positionObj开头,应为PositionObj。

+0

嘿,遗漏了一些代码。对此案达成一致。该班确实返回了一些东西,但是错误在这里,我不清楚为什么。 – 2010-11-28 16:56:51

+0

@jason,我更新了我的回答 – hvgotcodes 2010-11-28 16:59:31

1

首先创建一个Outer类的对象。在这种情况下,我认为“秘书”。然后创建positionObj。像这样,

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