728x90
반응형
프로그래머스 자바 중급 강의를 학습 목적으로 정리하여 포스팅합니다.
어노테이션
- java5부터 추가된 기능이다.
- 클래스나 메소드 위에 @(at) 기호로 이름이 시작한다.
- 어노테이션을 클래스나 메타코드(추가정보)에 붙인 후 클래스가 컴파일되거나 실행될 때 어노테이션의 유무나 어노테이션에 설정된 값을 통하여 클래스가 좀 더 다르게 실행할 수 있다. 이런 이유로 어노테이션을 일정의 설정파일처럼 설명하는 경우도 있다.
- 어노테이션은 자바가 기본으로 제공해주는 것도 있고, 사용자가 직접 만들 수도 있다. 직접 만드는 경우 Custom 어노테이션이라고 한다.
1. 어노테이션을 정의한다.
2. 어노테이션을 클래스에서 사용한다. (타겟에 적용)
3. 어노테이션을 이용하여 실행한다.
- new - Annotation을 이용하여 생성한다. JVM 실행 시에 감지할 수 있도록 하려면 @Retention(RetentionPolicy.RUNTIME)을 붙여줘야 한다.
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Count100 {
}
- "hello"를 출력하는 hello() 메소드를 가지는 MyHello 클래스 작성한다. hello 메소드 위에 @Count100 어노테이션을 붙힌다.
public class MyHello {
@Count100
public void hello(){
System.out.println("hello");
}
}
- MyHello 클래스를 이용하는 MyHelloExam 클래스를 작성한다. MyHello의 hello 메소드가 @Count100 어노테이션이 설정되어 있을 경우, hello() 메소드를 100번 호출하도록 한다.
import java.lang.reflect.Method;
public class MyHelloExam {
public static void main(String[] args) {
MyHello hello = new MyHello();
try{
Method method = hello.getClass().getDeclaredMethod("hello");
if(method.isAnnotationPresent(Count100.class)){
for(int i = 0; i < 100; i++){
hello.hello();
}
}else{
hello.hello();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
728x90
반응형
'JAVA > [프로그래머스] 자바 강의' 카테고리의 다른 글
[프로그래머스] 자바 중급 강의 part8. 람다 (0) | 2023.02.16 |
---|---|
[프로그래머스] 자바 중급 강의 part7. 쓰레드 (0) | 2023.02.13 |
[프로그래머스] 자바 중급 강의 part5. IO (0) | 2023.02.07 |
[프로그래머스] 자바 중급 강의 part4. 날짜와 시간 (1) | 2023.02.01 |
[프로그래머스] 자바 중급 강의 part3. java.util 패키지 (1) | 2023.02.01 |