Java 어노테이션 ElementType 상수는 무엇을 의미합니까?
java.lang.annotation.ElementType
:
프로그램 요소 유형. 이 열거 유형의 상수는 Java 프로그램에서 선언 된 요소의 간단한 분류를 제공합니다. 이러한 상수는 Target
주석 유형을 사용하는 것이 합법적 인 위치를 지정하기 위해 메타 주석 유형 과 함께 사용됩니다 .
다음과 같은 상수가 있습니다.
- ANNOTATION_TYPE- 어노테이션 유형 선언
- CONSTRUCTOR- 생성자 선언
- FIELD- 필드 선언 (열거 형 상수 포함)
- LOCAL_VARIABLE- 지역 변수 선언
- METHOD- 메서드 선언
- PACKAGE- 패키지 선언
- PARAMETER- 매개 변수 선언
- TYPE- 클래스, 인터페이스 (주석 유형 포함) 또는 열거 형 선언
누군가 각각이 무엇인지 설명 할 수 있습니까 (실제 코드에서 주석이 추가되는 위치)?
이것은 주요 내용을 요약합니다.
@CustomTypeAnnotation
public class MyAnnotatedClass {
@CustomFieldAnnotation
private String foo;
@CustomConstructorAnnotation
public MyAnnotatedClass() {
}
@CustomMethodAnnotation
public String bar(@CustomParameterAnnotation String str) {
@CustomLocalVariableAnnotation String asdf = "asdf";
return asdf + str;
}
}
ANNOTATION_TYPE은 다음과 같은 다른 주석에 대한 주석입니다.
@CustomAnnotationTypeAnnotation
public @interface SomeAnnotation {
..
}
패키지는 다음 package-info.java
과 같이 패키지 의 파일에 정의됩니다 .
@CustomPackageLevelAnnotation
package com.some.package;
import com.some.package.annotation.PackageLevelAnnotation;
PACKAGE 주석에 대한 자세한 내용은 여기 와 여기를 참조 하십시오 .
를 지정하는 주석 ElementType
이 호출 되었다고 가정 해 보겠습니다 YourAnnotation
.
ANNOTATION_TYPE-주석 유형 선언입니다. 참고 : 이것은 다른 주석에 적용됩니다.
@YourAnnotation public @interface AnotherAnnotation {..}
CONSTRUCTOR-생성자 선언
public class SomeClass { @YourAnnotation public SomeClass() {..} }
FIELD-필드 선언 (열거 형 상수 포함)
@YourAnnotation private String someField;
LOCAL_VARIABLE - Local variable declaration. Note: This can't be read at runtime, so it is used only for compile-time things, like the
@SuppressWarnings
annotation.public void someMethod() { @YourAnnotation int a = 0; }
METHOD - Method declaration
@YourAnnotation public void someMethod() {..}
PACKAGE - Package declaration. Note: This can be used only in
package-info.java
.@YourAnnotation package org.yourcompany.somepackage;
PARAMETER - Parameter declaration
public void someMethod(@YourAnnotation param) {..}
TYPE - Class, interface (including annotation type), or enum declaration
@YourAnnotation public class SomeClass {..}
You can specify multiple ElementType
s for a given annotation. E.g.:
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
TYPE:
Annotation:
@Target({ElementType.TYPE}) // This annotation can only be applied to
public @interface Tweezable { // class, interface, or enum declarations.
}
and an example usage:
@Tweezable
public class Hair {
...
}
ReferenceURL : https://stackoverflow.com/questions/3550292/what-do-java-annotation-elementtype-constants-mean
'Programing' 카테고리의 다른 글
Numpy : 2 개의 실제 배열로 복잡한 배열을 만드시나요? (0) | 2021.01.10 |
---|---|
Python 프로그램이 C 또는 C ++로 작성된 동등한 프로그램보다 종종 느린 이유는 무엇입니까? (0) | 2021.01.10 |
오류 C2275 :이 유형을 표현식으로 잘못 사용했습니다. (0) | 2021.01.10 |
Fragment에 AlertDialog를 표시하는 방법은 무엇입니까? (0) | 2021.01.10 |
DataGridView에서 선택하는 기능을 비활성화하는 방법은 무엇입니까? (0) | 2021.01.10 |