본문 바로가기
관리자

Programming-[Backend]/Java

[TIL][링크][작성중] 자바 어노테이션 및 리플렉션(Java Annotation, Reflection)

728x90
반응형

리플렉션 기초개념

어떤 클래스의 멤버 변수, 메서드 등을 호출할 수 있다.

(예시 추가)

 

class의 변수들은 그야말로 변수다. 아직 어떤 값이 지정될 지 모른다. 클래스의 변수들은 생성자를 통해 인스턴스가 생성되면서 그 값들이 정해지므로 constant 하지 못하다.

 

어노테이션에서 attribute로 지정하기 위해서는 constant해야만 한다. 따라서 클래스 자체를 어노테이션의 속성값으로 지정할 수는 없다.

 

 

리플렉션 사용 시 유의점

  • 인스턴스가 이미 생성되있는 경우라면 굳이 리플렉션을 사용할 필요가 없다. 성능에 좋지 않다.
  • 컴파일 단계에서는 확인 불가하고 런타임에서만 오류를 확인할 수 있다.
  • .setAccessible(true) 메서드를 통해서 접근 지정자(Java Access Modifier)를 무시할 수 있으므로 캡슐화를 무시할 수 있다.

 

 

 

 


 

참조

1. 기본 개념 잘 정리

https://advenoh.tistory.com/21

 

2. 어노테이션 사용 주의사항

https://shinsunyoung.tistory.com/83

 

3. 컴파일러 수준의 간단한 원리 + 필드값 변경용 어노테이션 예제

https://donghyeon.dev/spring/2020/08/18/Spring-Annotation%EC%9D%98-%EC%9B%90%EB%A6%AC%EC%99%80-Custom-Annotation-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B8%B0/

 

4. Maven import

https://mvnrepository.com/artifact/javax.validation/validation-api

 

5. message, groups, payloads

https://devonce.tistory.com/42

 

6. 리플렉션 및 어노테이션 같이 정리

https://inspirit941.tistory.com/entry/Java-Reflection-%EC%A0%95%EB%A6%AC

 

 

728x90
반응형