programing

유형을 지정하지 않고 Java Enum을 참조하려면 어떻게 해야 합니까?

procenter 2022. 9. 21. 22:36
반응형

유형을 지정하지 않고 Java Enum을 참조하려면 어떻게 해야 합니까?

다음과 같이 자체 열거형을 정의하는 클래스가 있습니다.

public class Test
{
    enum MyEnum{E1, E2};

    public static void aTestMethod() {
        Test2(E1);  // << Gives "E1 cannot be resolved" in eclipse.
    }
    public Test2(MyEnum e) {}
}

MyEnum을 지정했을 경우.E1은 잘 작동하지만, 저는 E1로 하고 싶습니다.이 작업을 수행하려면 어떻게 해야 하는지, 아니면 다른 파일에 정의해야 합니까?

결론: Import의 구문을 올바르게 알 수 없었습니다.몇 가지 답변에서 이것이 가능하다는 의견이 나왔기 때문에 필요한 구문을 알려준 것을 선택하고 나머지 항목을 상향 투표합니다.

덧붙여서, (스태틱 Import가 동작하기 전에) 이 중 정말 이상한 부분은 Enum을 사용하는 스위치 스테이트먼트에서 Enum을 그 타입에 따라 프레픽스 하는 것을 허용하지 않았습니다.다른 모든 코드는 그것을 필요로 했습니다.머리를 다쳤어요.

실제로 중첩된 열거형의 정적 가져오기를 수행할 수 있습니다.아래 코드는 컴파일 상태가 양호합니다.

package mypackage;

import static mypackage.Test.MyEnum.*;

public class Test
{
    enum MyEnum{E1, E2};

    public static void aTestMethod() {
        Test2(E1);  
    }

    public static void Test2(MyEnum e) {}
}

네스트된 클래스에서 스태틱 Import를 수행할 수 있습니다.

import static apackage.Test.Enum.*;

테스트 클래스는 패키지에 정의되어 있어야 Import할 수 있습니다.

패키지가 정의되어 있는 경우Test(IT기능):

package mypackage;

다음을 사용할 수 있습니다.

import static mypackage.Test.MyEnum.*;

패키지가 정의되어 있지 않으면 (DONS NOT WORK)를 사용할 수 없습니다.

import static Test.MyEnum.*;

언급URL : https://stackoverflow.com/questions/1677037/how-can-i-reference-my-java-enum-without-specifying-its-type

반응형