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

jas*_*n m 86 java instance

包含的封闭实例是必需的

下面是代码.positionObj是我试图使用的对象,它给了我上面的错误.

目前还不清楚为什么.

package toolBox;
import toolBox.Secretary.positionObj;    

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

SLa*_*aks 125

您正在尝试使用非静态内部positionObj类,而没有Secretary属于它的实例.
非静态内部类必须属于其父类的实例

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

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

  • 错误的实际原因是您没有给出父实例.不要使用非静态内部类,除非你真的需要一个_并且你了解它们是如何工作的.http://c2.com/ppr/wiki/JavaIdioms/NoPublicInnerClasses.html (2认同)

小智 10

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

Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!...我从 v 1.0 开始就使用 Java,但我不知道你能做到这一点! (2认同)