문제:
Java에서 문자열을 사용하여 주석 매개변수를 초기화하는 것이 가능합니까? 상수 또는 배열 상수? 주석 매개변수는 컴파일 시간에 평가되므로 이 기능이 작동하지 않을 수 있습니다.
원하는 구문의 예는 다음과 같습니다.
@SomeAnnotation(locations = FieldValues.FIELD1) public class MyClass { .... }
FieldValues는 상수 배열 FIELD1이 있는 인터페이스입니다.
정답:
Java에 따르면 언어 사양 15.28, 컴파일 타임 상수는 기본 요소와 문자열만 될 수 있습니다. 이는 주석 매개변수를 초기화하기 위해 배열 상수를 사용할 수 없음을 의미합니다.
설명:
주석은 컴파일 타임에 평가되며 주석에 포함된 값은 그 때 알아야 합니다. 배열의 요소는 런타임에 수정될 수 있으므로 배열은 컴파일 타임 상수가 아닙니다. 따라서 배열 상수를 주석 매개변수로 사용할 수 없습니다.
가능한 해결 방법:
참고:
배열이 최종으로 정의되더라도 여전히 컴파일 시간 상수가 아니며 해당 요소는 반사적으로 수정될 수 있습니다. .
위 내용은 Java의 주석 매개변수를 문자열 또는 배열 상수로 초기화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!