공부하다보니 @Override, @FunctionalInterface같이 골뱅이를 붙인 무언가가 보인다. 이것이 무엇인지 궁금해 정리해본다.
annotation은 자바 소스 코드에 추가될 수 있는 메타데이타이다.
annotation은 다음 기능을 제공한다
- 컴파일러에게 해당 annotation의 조건을 검사해 조건이 맞지 않다면 에러 생성
Built-in annotation
- @Override - 메소드가 오버라이드 되었는지 검사한다. 메소드가 오버라이드 된것이 아니라면 컴파일 에러를 발생시킨다.
- @Deprecated - 메소드가 구식이라고 표시한다. 메소드가 사용되면 컴파일 경고를 띄운다.
- @SuppressWarnings - 명시된 어노테이션 매개변수의 컴파일 경고를 숨긴다.
- @FunctionalInterface - 타입 선언이 함수형 인터페이스를 의도한 것이라고 명시한다. 클래스에 하나의 메소드만 있는것이 아니라면 컴파일 에러를 발생시킨다.
Custom annotation
어노테이션을 만들수도 있다.
골뱅이 + interface키워드로 선언할 수 있다.
@Twizzle
public void toggle() {
}
public @interface Twizzle{
}
'Java' 카테고리의 다른 글
spring View, 템플릿 엔진 (0) | 2025.02.07 |
---|---|
spring 설치와 환경설정 (0) | 2025.02.07 |
Java concurrent programming (0) | 2024.09.27 |
FunctionalInterface, Lambda Expression (2) | 2024.09.26 |
Java 파일 조작 (File Handling) (0) | 2024.09.23 |