럿고의 개발 노트
[프로그래머스] 자바 중급 > Part6. 어노테이션 본문
[프로그래머스] 자바 중급
Part6. 어노테이션
1. 어노테이션
Java5에 추가된 기능
클래스나 메소드위에 붙으며 @(at)기호를 사용
어노테이션을 클래스나 메타코드에 붙인 후, 클래스가 컴파일되거나 실행될 때 어노테이션의 유무나 어노테이션에 설정된 값을 통하여 클래스가 좀 더 다르게 실행되게 할 수 있음.
이런 이유로 어노테이션을 일정의 설정파일처럼 설명하는 경우도 있음.
어노테이션은 자바가 기본으로 제공해주는 것도 있고, 사용자가 직접 만들 수도 있음.
사용자가 직접 작성하는 어노테이션을 Custom 어노테이션이라고 말함.
Custom 어노테이션을 이용하는 방법
- 어노테이션 정의
- 어노테이션을 클래스에 사용(타켓에 적용)
- 어노테이션을 이용하여 실행
JVM실행시 감지할 수 있도록 하려면 @Retention(RetentionPolicy.RUNTIME)을 붙어줘야 함.
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME) // 실행중에 JVM에 감지할수 있게 해주는 것
public @interface Count100 {
}
public class MyHello {
/*
* 어노테이션(Annotation) Java5부터 추가된 기능 클래스나 메소드 위에 붙여 사용 ex)@Override 소스코드에
* 메타코드(추가정보)를 주는 것 일정의 설정파일처럼 설명하는 경우도 있음 자바가 기본으로 제공해주는 것도 있고, 사용자가 직접 만들어서
* 사용할수 있는 것도 있음 Custom 어노테이션 이용 방법 1. 정의 2. 사용 3. 실행
*/
@Count100
public void hello() {
System.out.println("hello");
}
}
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");
// getClass메소드 : 해당 인스턴스를 만들때 해당 메소드에 대한 정보를 얻음,
// getDeclaredMethod : 지정한 메소드에 대한 정보를 얻음
if(method.isAnnotationPresent(Count100.class)) { // 특정 어노테이션이 메소드에 적용되어 있는지 알아볼수 있는 것
for (int i = 0; i < 100; i++) {
hello.hello();
}
}else {
hello.hello();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
출처
'Java Note > [프로그래머스] 자바 중급(동영상 강의)' 카테고리의 다른 글
[프로그래머스] 자바 중급 > Part5. IO (0) | 2020.02.04 |
---|---|
[프로그래머스] 자바 중급 > Part4. 날짜와 시간 (0) | 2020.02.04 |
[프로그래머스] 자바 중급 > Part3. java.util 패키지 (0) | 2020.01.31 |
[프로그래머스] 자바 중급 > Part2. java.lang 패키지 (0) | 2020.01.31 |
[프로그래머스] 자바 중급 > Part1. Object 클래스 (0) | 2019.12.06 |
Comments