NestingKind — 중첩 종류 열거 클래스

NestingKind — 중첩 종류 열거 클래스

NestingKind는 타입 요소의 중첩(nesting) 종류를 나타내는 열거 클래스예요. 타입 요소는 최상위(top-level), 멤버(member), 지역(local), 익명(anonymous) 네 가지 종류로 나뉘어요. "중첩 종류(nesting kind)"는 이 분류를 나타내기 위해 여기서 쓰는 비표준 용어예요.

미래 플랫폼 버전에 추가 중첩 종류가 생길 수 있어요. 예를 들어 MemberClass는 클래스 멤버로 선언된 중첩 클래스라 MEMBER, 메서드 안에서 선언된 지역 클래스는 LOCAL, 이름 없는 클래스는 ANONYMOUS로 분류돼요.

출처: Java API Reference

본문

선언은 다음과 같아요.

public enum NestingKind extends Enum<NestingKind>

주요 열거 상수는 TOP_LEVEL, MEMBER, LOCAL, ANONYMOUS예요.

TypeElement.getNestingKind()는 이 열거값을 반환해요. 각 클래스에 중첩 종류를 매기면 다음과 같이 달라져요.

@Nesting(TOP_LEVEL)
public class NestingExamples {
    @Nesting(MEMBER)
    static class MemberClass1{}
    @Nesting(MEMBER)
    class MemberClass2{}
    public static void main(String... argv) {
        @Nesting(LOCAL)
        class LocalClass{};
        // ...
    }
}

주요 메서드는 다음과 같아요.

Modifier and Type Method 설명
boolean isNested() 이 상수가 중첩 타입 요소에 해당하면 true.
static NestingKind valueOf(String name) 지정된 이름의 열거 상수를 반환해요.
static NestingKind[] values() 선언 순서대로 열거 상수 배열을 반환해요.

isNested()TOP_LEVEL이 아닌(즉 중첩된) 종류인지 한 번에 판별해요. Since: 1.6.

더 알아보기 (Learn more)

Java 공식 API