포함하는 엔 클로징 인스턴스가 필요합니다.
아래는 코드입니다. 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()
인스턴스에 속하는 내부 클래스의 인스턴스를 작성하도록 작성할 수 있습니다 someSecretary
.
답변
먼저 Outer 클래스의 객체를 만듭니다. 이 경우는 “비서”라고 생각합니다. 그런 다음 positionObj를 만듭니다. 이렇게
Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();
답변
올바른 일반 서명은 다음과 같습니다.
public static HashMap<String, positionObj> main(String vArg)
이미 가져 오기 때문에 positionObj를 한정 할 필요가 없습니다.
그러나 주요 방법이 아래 서명을 준수해야한다고 확신합니다. main이 프로그램의 주요 메소드가되도록하려면 서명을 다음과 같이 변경하십시오.
public static void main(String[] args) {...}
Map을 반환하고 main에서 호출하는 별도의 정적 메서드를 만들 수 있습니다.
참고로 모든 클래스는 대문자 positionObj로 시작해야하며 PositionObj 여야합니다.