반응형
Java에서 클래스 내부의 열거 형 유형은 정적입니까?
내부 클래스 내부에서 가능한 것처럼 열거 형 내부에서 주변 클래스의 인스턴스 멤버에 액세스 할 수없는 것 같습니다. 열거 형이 정적이라는 것을 의미합니까? 주변 클래스의 인스턴스 범위에 액세스 할 수 있습니까? 아니면 인스턴스를 필요한 열거 형의 메소드로 전달해야합니까?
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;
}
}
예, 중첩 열거 형은 암시 적으로 정적입니다.
로부터 언어 사양 섹션 8.9 :
중첩 열거 형 유형은 내재적으로 정적입니다. 중첩 된 열거 형 유형을 정적으로 명시 적으로 선언 할 수 있습니다.
열거 형 인스턴스가 외부 클래스에 묶여 있으면 인스턴스 수준 (정적이 아닌) 내부 열거 형 클래스를 만드는 것은 의미가 없습니다.
예를 들어
public class Foo {
private enum Bar {
A, B, C;
}
}
열거 형 값이 상수로 올바르게 작동하려면 (액세스 제한을 무시하고 의사 코드)
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' 카테고리의 다른 글
C #의 정수 나누기가 왜 실수가 아닌 정수를 반환합니까? (0) | 2020.07.17 |
---|---|
메모리 누수가 얼마나 멀리 갈 수 있습니까? (0) | 2020.07.17 |
http get 요청에서 헤더를 설정하는 방법은 무엇입니까? (0) | 2020.07.17 |
스크립트를 비동기 적으로로드 (0) | 2020.07.17 |
CSS 유사 요소 결합 :“: after”“: last-child” (0) | 2020.07.17 |