키 문자열의 주석을 사용하여 해당 키의 속성에 대한 초기 값을 구성하고 싶습니다. 예를 들어,Java annotation 매개 변수에서 여러 유형을 허용하는 방법은 무엇입니까?
@NodeProperty(initialValue = "bar") static final String "FOO";
다른 코드는 나중에 키 "FOO"이미 존재하지 않는 경우, 특정 키 - 값 저장소에 값 "바"와 키 "FOO"을 추가, 주석을 처리합니다. 나는 시간의 initialValue
앞서의 유형을 모르는,
@Retention(RetentionPolicy.RUNTIME)
@interface NodeProperty {
long initialValue(); // I want to accept Strings, ints, byte[], etc. here.
}
그러나 :
내 주석 선언이다. 나는 모든 프리미티브, 문자열 및 이들의 배열을 허용하고 싶습니다.
이 작업을 수행하는 방법에 대한 아이디어가 있으십니까? 편집
:
불행하게도, 그것은 주석 매개 변수를 오버로드 같은 소리는하실 수 없습니다. 아래 답변은 다양한 해결 방법을 포함합니다.
'객체'를 허용 하시겠습니까? – talnicolas
주석 매개 변수 유형은 원시, Class, String, Enum 또는 이들의 배열이어야하므로 컴파일러에서 허용하지 않습니다. 프리미티브의 객체 버전조차도 허용되지 않습니다. –
그것은 형식 문제가 아니지만 "컴파일시의 상수"문제입니다. –