Android
어노테이션 프로세서
수색…
소개
주석 처리기는 컴파일시 주석을 스캔하고 처리하기위한 javac의 도구 빌드입니다.
주석은 클래스, 메소드, 필드 및 기타 주석과도 연결할 수있는 메타 데이터 클래스입니다. 주석 처리기를 통해 런타임시 반영시 및 컴파일 타임에 이러한 주석에 액세스하는 두 가지 방법이 있습니다.
@NonNull 주석
public class Foo {
private String name;
public Foo(@NonNull String name){...};
...
}
여기서 @NonNull은 특정 함수가 null이 아닌 매개 변수를 필요로한다는 것을 경고하기 위해 android studio가 컴파일 타임에 처리하는 주석입니다.
특수 효과의 유형
주석에는 세 가지 유형이 있습니다.
마커 주석 - 메소드가없는 주석
@interface CustomAnnotation {}
단일 값 주석 - 한 가지 방법이있는 주석
@interface CustomAnnotation { int value(); }
다중 값 주석 - 둘 이상의 메소드가있는 주석
@interface CustomAnnotation{ int value1(); String value2(); String value3(); }
커스텀 어노테이션 생성 및 사용
맞춤 주석을 만들려면
- Target - 이러한 주석이 필드 레벨, 메소드 레벨, 유형 레벨 등에서 작동합니다.
- 보존 - 어떤 수준의 주석을 사용할 수 있습니다.
이를 위해 맞춤 주석을 작성했습니다. 다음은 주로 사용되는 것들입니다.
@목표
@보유
커스텀 어노테이션 생성하기
@Retention(RetentionPolicy.SOURCE) // will not be available in compiled class
@Target(ElementType.METHOD) // can be applied to methods only
@interface CustomAnnotation{
int value();
}
커스텀 어노테이션 사용하기
class Foo{
@CustomAnnotation(value = 1) // will be used by an annotation processor
public void foo(){..}
}
@CustomAnnotation
내에서 제공된 값은 Annotationprocessor에 의해 소비되고 컴파일 타임에 코드를 생성 할 수 있습니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow