Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包含<;我的参考资料>;是必需的_Java_Instance - Fatal编程技术网

Java 包含<;我的参考资料>;是必需的

Java 包含<;我的参考资料>;是必需的,java,instance,Java,Instance,需要包含的封闭实例 下面是代码positionObj是我试图使用的对象,它给出了上述错误 原因不明 package toolBox; import toolBox.Secretary.positionObj; public class PositionManagement { public static HashMap<String, Secretary.positionObj> main(String vArg){ positionObj newP

需要包含的封闭实例

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

原因不明

package toolBox;
import toolBox.Secretary.positionObj;    

public class PositionManagement {
    public static HashMap<String, Secretary.positionObj> main(String vArg){
        positionObj newPosition=new positionObj();
    }
}
包工具箱;
导入toolBox.Secretary.positionObj;
公共班级管理{
公共静态HashMap main(字符串变量){
positionObj newPosition=新位置obj();
}
}

正确的通用签名应该是

public static HashMap<String, positionObj> main(String vArg)
您可以创建一个单独的静态方法,该方法返回一个映射并从main调用它


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

您试图使用非静态的内部
positionObj
类,但没有
Secretary
的实例,它就属于该类。
非静态内部类必须属于其父类的实例

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


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

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

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

嘿,遗漏了一些代码。同意这个案子。这个类确实返回了一些东西,但是错误在这里,我不清楚为什么。@jason,我认为您不能从main返回任何东西。同意,但是这个一般性语句有点不清楚。你能给我举个例子或者给我指个地方来更好地解释这一点吗?谢谢。我在调试时意识到,如果我将positionObj设置为static,那么它(在它的Secretary类中)可以工作。我很高兴,这一切现在都起作用了,但谢谢你的指点。将调查此错误的实际原因。错误的实际原因是您没有提供父实例。不要使用非静态内部类,除非您真的需要并且您了解它们是如何工作的。这两种解决方案都能完美工作[1-使positionObj类保持静态,2-使用OuterClass.new classObj()]。谢谢。但是,您需要充分了解您的代码库,以确定哪一个是正确的。谢谢。。。我从V1.0开始就使用Java,我不知道你能做到!或者你也可以内联使用Secretary.positionObj y=new Secretary().new positionObj();
Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();