TIL (2023/12/23..?)

문정현·2023년 12월 27일
0
아마 저번주 금요일에 작성한거 같은데 임시저장만된것 같다..

@Target({ElementType.TYPE})
@Target({ElementType.FIELD, ElementType.PARAMETER})

차이점은 무엇일까

@Target({ElementType.TYPE})
이 설정은 어노테이션이 클래스, 인터페이스 (포함하여 어노테이션 인터페이스), 열거형에 적용될 수 있음을 나타낸다
예를 들어, 클래스 레벨의 유효성 검사를 정의할 때 이 타겟을 사용한다.

@Target(ElementType.TYPE)
public @interface MyAnnotation {
}

@MyAnnotation
public class MyClass {
}

@Target({ElementType.FIELD, ElementType.PARAMETER})
이 설정은 어노테이션이 필드(클래스 멤버 변수)와 메소드 매개변수에 적용될 수 있음을 나타낸다.
필드 또는 메소드 매개변수에 특정 동작이나 제약을 적용하는 데 사용된다.

@Target({ElementType.FIELD, ElementType.PARAMETER})
public @interface MyFieldAnnotation {
}

public class MyClass {
    @MyFieldAnnotation
    private String myField;
    
    public void myMethod(@MyFieldAnnotation String parameter) {
    }
}
profile
주니어 개발자를 꿈꾸며

0개의 댓글