반응형
중첩 된 Java 열거 형 정의-정적으로 선언하면 차이가 있습니까?
이 질문에 이미 답변이 있습니다.
인터페이스가 있습니다. 여기에 예를 들어 멋지게 고안된 버전이 있습니다.
public interface Particle {
enum Charge {
POSITIVE, NEGATIVE
}
Charge getCharge();
double getMass();
etc...
}
Charge
열거 형을 정적으로 정의한 경우이 구현이 작동하는 방식에 차이가 있습니까? 즉, 효과 가 있습니까?
public interface Particle {
static enum Charge {
POSITIVE, NEGATIVE
}
Charge getCharge();
double getMass();
etc...
}
아니요, 차이가 없습니다. 그러나 그 이유는 Jon이 말했듯이 인터페이스 내부의 멤버 선언이기 때문이 아닙니다. 진짜 이유는 언어 사양 ( 8.9 )에 따라
중첩 열거 형은 암시 적으로 정적입니다. 중첩 된 열거 형을 정적으로 명시 적으로 선언 할 수 있습니다.
다음 예제에서 static은 어떤 차이도 만들지 않습니다 (인터페이스가 없더라도).
public class A {
enum E {A,B};
}
public class A {
static enum E {A,B};
}
중첩 된 개인 열거 형 (암시 적으로 공용이 아님) 이있는 또 다른 예입니다 .
public class A {
private static enum E {A,B}
}
아니요, 차이가 없습니다. 로부터 언어 사양, 섹션 9.5 :
인터페이스에는 멤버 형식 선언 ( §8.5 ) 이 포함될 수 있습니다 . 인터페이스의 멤버 유형 선언은 암시 적으로
static
andpublic
입니다.
반응형
'Programing' 카테고리의 다른 글
TRY CATCH ROLLBACK 패턴을 포함하는 중첩 저장 프로 시저? (0) | 2021.01.11 |
---|---|
iOS의 MapKit에서 경로 그리기 (0) | 2021.01.11 |
weka 분류를 해석하는 방법? (0) | 2021.01.11 |
htaccess를 사용한 모바일 리디렉션 (0) | 2021.01.11 |
asp.net mvc 3 및 C #을 사용하여 쿠키를 지우는 방법은 무엇입니까? (0) | 2021.01.11 |