자바 @주석
2125 단어 java
https://docs.oracle.com/javase/tutorial/java/annotations/에 설명된 대로 주석을 사용하여 다음을 수행할 수 있습니다.
컴파일러에 정보 제공: 오류를 감지하거나 경고를 억제할 수 있도록 합니다.
컴파일 시간 및 배포 시간 처리: 코드, xml 파일 등을 생성할 수 있습니다.
런타임 처리: 일부 주석은 런타임 시 검토할 수 있습니다(리플렉션 사용).
유형을 사용하는 모든 곳에서 주석을 사용할 수 있습니다.
한 가지 흥미로운 사실은 주석이 잠재적으로 코드를 생성할 수 있지만 수정할 수는 없다는 것입니다. lombok과 같은 도구를 사용하는 경우 실제로 코드를 수정하지만 일반적으로 내부 라이브러리에 액세스하여 이를 수행합니다.
주석은 다음과 같이 @interface 키워드로 정의됩니다.
public @interface Version {
int mayor();
int minor();
}
이들은 이전에 언급한 기본 유형, 열거형, 기타 주석 및 배열을 수신할 수 있습니다. 열거형을 정의해 봅시다:
public enum Usage {
UTILITY,
DTO,
DAO,
SERVICE
}
그런 다음 다른 주석을 만들어 보겠습니다.
public @interface Info {
String[] authors();
Usage usage();
Version version();
}
이제 우리는 그것을 사용합니다:
@Info(
authors = {"jsedano", "weirderror"},
usage = Usage.UTILITY,
version = @Version(mayor = 1, minor = 0))
public class VeryUtil {}
런타임 시 가상 머신에서 주석을 유지해야 하는지 여부를 지정할 수 있습니다. 또는 컴파일러에 의해 폐기되는 경우에도 마찬가지입니다. 이는
meta-annotation
를 사용하여 달성되며, 메타 주석은 다른 주석에 적용되는 주석입니다.예를 들어 메서드, 생성자 등에서 주석을 사용할 수 있는 위치를 정의할 수도 있습니다.
@Override 주석이 어떻게 정의되는지 살펴보겠습니다(@Override는 메서드 재정의를 사용하는 메서드를 표시하는 데 사용되는 미리 정의된 주석입니다).
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
보시다시피 메타 주석 @Target은 이 특정 주석이 메소드 선언 위에서만 사용될 수 있다고 말하는 데 사용되며 @Retention 주석은 이 주석이 클래스 파일에 기록되지 않으며 다음 위치에서 사용할 수 없음을 나타냅니다. 실행 시간.
주석 유형에 대한 기능을 실제로 정의하려면 .
Reference
이 문제에 관하여(자바 @주석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jsedano/java-annotations-khj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)