수색…


소개

주석 처리기는 컴파일시 주석을 스캔하고 처리하기위한 javac의 도구 빌드입니다.

주석은 클래스, 메소드, 필드 및 기타 주석과도 연결할 수있는 메타 데이터 클래스입니다. 주석 처리기를 통해 런타임시 반영시 및 컴파일 타임에 이러한 주석에 액세스하는 두 가지 방법이 있습니다.

@NonNull 주석

public class Foo {
    private String name;
    public Foo(@NonNull String name){...};
    ...
}

여기서 @NonNull은 특정 함수가 null이 아닌 매개 변수를 필요로한다는 것을 경고하기 위해 android studio가 컴파일 타임에 처리하는 주석입니다.

특수 효과의 유형

주석에는 세 가지 유형이 있습니다.

  1. 마커 주석 - 메소드가없는 주석

    @interface CustomAnnotation {}
    
  1. 단일 값 주석 - 한 가지 방법이있는 주석

    @interface CustomAnnotation {  
        int value();  
    }
    
  1. 다중 값 주석 - 둘 이상의 메소드가있는 주석

    @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