나는 컴파일 타임 상수 String을 필요로하는 annotation을 가지고 있는데 그것들 중 하나에서 컴파일 타임 상수 int로 초기화하고 싶다. 내가 사용하는 도서관들.컴파일 타임 상수 int를 자바의 컴파일 타임 상수 String으로 변환
public class LibraryClass {
public static int CONSTANT_INT = 0; //Where 0 could be whatever
}
public class MyClass {
private static final String CONSTANT_STRING = "" + LibraryClass.CONSTANT_INT;
@AnnotationThatNeedsString(CONSTANT_STRING)
public void myMethod() {
//Do something
}
}
내 질문에, 컴파일 시간 상수 문자열을 "" + PRIMITIVE_TO_CONVERT
을 사용하는 것보다 프리미티브를 변환하는 더 나은 방법이있다 : 그래서 내가하고 결국 무엇을이 같은입니까? 프리미티브를 String으로 "캐스팅"하는 방법은 무엇입니까? 이런 식으로하는 것이 조금 이상하다고 느껴지기 때문입니다.
그러나 주석 내에서 직접 사용할 수 없으며 CONSTANT_STRING 초기화에서만 사용할 수 있습니다. –
"개인 정적 최종 문자열입니다. CONSTANT_STRING = String.valueOf (LibraryClass.CONSTANT_INT);" 해당 사항 없음 – Anthony
네, 그게 작동하며 정답입니다. 그러나 질문 작성자가 @AnnotationThatNeedsString (someCleverCastOf (CONSTANT_INT))과 같은 것을 요청했다고 생각합니다. –