代码之家  ›  专栏  ›  技术社区  ›  jason m

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

  •  80
  • jason m  · 技术社区  · 14 年前

    包含的封闭实例是必需的

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

    目前还不清楚原因。

    package toolBox;
    import toolBox.Secretary.positionObj;    
    
    public class PositionManagement {
        public static HashMap<String, Secretary.positionObj> main(String vArg){
            positionObj newPosition=new positionObj();
        }
    }
    
    3 回复  |  直到 11 年前
        1
  •  124
  •   SLaks    14 年前

    你在尝试使用非静态的内部 positionObj 类没有实例 Secretary 让它属于。
    非静态内部类必须属于其父类的实例

    你应该改变一下 位置对象 到普通类或静态内部类。

    或者,你可以写 someSecretary.new positionObj() 创建属于 someSecretary 实例。

        2
  •  10
  •   Teshan    7 年前

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

    Secretary x = new Secretary();
    Secretary.positionObj y = x.new positionObj();
    
        3
  •  0
  •   hvgotcodes    14 年前

    正确的通用签名是

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

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

    但是,我非常确定主方法必须符合下面的签名。如果您想让main成为程序的主要方法,请将签名更改为

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

    您可以创建一个单独的静态方法,该方法返回一个映射并从main调用它。

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