초기 시도 및 문제
Java에서는 주석을 사용하여 다음에 메타데이터를 제공합니다. 클래스, 메소드, 변수. 일부 시나리오에서는 주석 속성에 동적 값을 할당할 수 있습니다. 그러나 메소드 호출 결과와 같이 상수가 아닌 표현식을 주석 속성에 할당하는 것은 일반적으로 금지됩니다. 경험한 바와 같이:
@MyInterface(aString = MyClass.GENERIC_GENERATED_NAME)
컴파일러는 다음과 같이 불평합니다.
"주석 속성 MyInterface.aString의 값은 상수 표현식이어야 합니다."
컴파일러 제한 사항
이 제한은 컴파일 타임에 RetentionPolicy.RUNTIME 주석에 대한 주석 메타데이터에 대한 컴파일러의 평가에서 비롯됩니다. 주석 속성에 할당된 값은 컴파일 시 알려져야 합니다.
다른 보존 정책
Java는 주석에 대해 다양한 보존 정책을 제공합니다.
해결 방법
안타깝게도 동적으로 생성된 문자열 값을 주석에 제공하려는 목표는 컴파일러의 제한으로 인해 달성할 수 없습니다. RetentionPolicy.SOURCE나 RetentionPolicy.RUNTIME 모두 이를 허용하지 않습니다.
위 내용은 Java 주석에 동적 값을 전달할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!