반응형
Java에서는 클래스 내부의 열거형은 정적입니까?
내부 클래스 내에서와 같이 열거형 내부에서는 주변 클래스의 인스턴스 멤버에 액세스할 수 없습니다.그럼 enum은 정적인 건가요?주변 클래스의 인스턴스 범위에 액세스할 수 있습니까? 아니면 필요한 경우 inum 메서드에 인스턴스를 전달해야 합니까?
public class Universe {
public final int theAnswer;
public enum Planet {
// ...
EARTH(...);
// ...
// ... constructor etc.
public int deepThought() {
// -> "No enclosing instance of type 'Universe' is accessible in this scope"
return Universe.this.theAnswer;
}
}
public Universe(int locallyUniversalAnswer) {
this.theAnswer = locallyUniversalAnswer;
}
}
네, 네스트된 enum은 암묵적으로 정적입니다.
중첩된 열거형은 암묵적으로 정적입니다.중첩된 열거형이 정적임을 명시적으로 선언할 수 있습니다.
instance-level(비정적) inner enum 클래스를 만드는 것은 의미가 없습니다.enum 인스턴스 자체가 외부 클래스에 연결되어 있으면 enum 보증이 해제됩니다.
예를 들면,
public class Foo {
private enum Bar {
A, B, C;
}
}
enum 값이 상수로 올바르게 기능하려면 (psuedocode, 액세스 제한 무시)
Bar b1 = new Foo().A
Bar b2 = new Foo().A
b1과 b2는 같은 오브젝트여야 합니다.
언급URL : https://stackoverflow.com/questions/663834/in-java-are-enum-types-inside-a-class-static
반응형
'programing' 카테고리의 다른 글
Postgres에서 MySQL로 데이터베이스 마이그레이션 (0) | 2022.09.04 |
---|---|
boto3 클라이언트 NoRegionError:지역 오류는 가끔만 지정해야 합니다. (0) | 2022.09.04 |
Java에서 날짜에 n시간을 추가하시겠습니까? (0) | 2022.09.03 |
XOR의 역함수란 무엇입니까? (0) | 2022.09.03 |
C#의 '수익률' 키워드에 해당하는 Java가 있습니까? (0) | 2022.09.03 |