리플렉션을 사용하는 것보다 두 가지 더 좋은 해결책을 생각할 수 있습니다.
괜찮은 IDE는 스위치 문을 자동 완성합니다. 나는 IntelliJ를 사용하고 이것이 (당신은 ctrl-enter를 누름) 이것을합니다. 나는 Eclipse/Netbeans이 비슷한 것을 가지고 있다고 확신한다. 및
Enum은 public static primitives보다 상수에 대해 훨씬 더 나은 선택을합니다. 추가 된 이점은이 문제를 해결할 수 있다는 것입니다.
하지만 가정 반사를 통해 원하는 것을 찾을 수 있습니다 :
interface Foo {
public static final int CONST_1 = 1;
public static final int CONST_2 = 3;
public static final int CONST_3 = 5;
}
실행 :
public static void main(String args[]) {
Class<Foo> c = Foo.class;
for (Field f : c.getDeclaredFields()) {
int mod = f.getModifiers();
if (Modifier.isStatic(mod) && Modifier.isPublic(mod) && Modifier.isFinal(mod)) {
try {
System.out.printf("%s = %d%n", f.getName(), f.get(null));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
출력 :
CONST_1 = 1
CONST_2 = 3
CONST_3 = 5
당신이 얘기 확실 인터페이스? 열거 형을 의미하는 경우 질문을 이해할 수 있습니다. 그러나 인터페이스에 대한 "상수"와 같은 것은 없습니다. –
글쎄 그것은 정말로 인터페이스입니다. 그리고 나는 그 밖의 무엇을 우리가 값을 가진 인터페이스에 배치 된 정수를 요구 하는지를 말하지 않습니다. – Ravisha
...하지만 정수 정수로 정확히 무엇을 하시겠습니까? 의사 코드를 제공 할 수 있습니까? – Yaneeve