[java] <my reference>를 포함하는 엔 클로징 인스턴스가 필요합니다.

포함하는 엔 클로징 인스턴스가 필요합니다.

아래는 코드입니다. 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 여야합니다.


답변