Java

[Java] 리플렉션 공부

2022. 10. 25. 09:26
728x90

상황)

SQL로 Select했을 때 name 칼럼에 클래스의 변수명이 들어있어서 DTO에 넣으려면 name 칼럼의 값을 확인하고 DTO와 매칭 시켜서 값을 담아주어야 한다.

 

과정)

하나하나 setter로 모두 담아주려고 보니 코드가 길어지고 가독성이 떨어지는 것 같아서 한번에 담을 수 없을까라는 생각에 리플렉션을 공부하게 되었다.

 

리플렉션이란?

리플렉션은 구체적인 클래스 타입을 알지 못해도, 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API

 

리플렉션을 언제 사용하는가?

정적 언어인 자바를 동적인 문제로 해결해야 하는 경우가 있는데 이때 리플렉션을 사용한다고 한다.

클래스의 변수 명을 비교한 뒤 값을 넣어주어야 하는 나의 상황도 이러한 상황이라고 할 수 있을 것 같다.

 

리플렉션은 애플리케이션 개발보단 프레임워크, 라이브러리에서 많이 사용된다.

프레임워크, 라이브러리는 사용하는 사람이 어떤 클래스를 만들지 모르기 때문에 동적으로 해결해주기 위해 리플렉션을 사용한다고 한다.

 

대표적인 사용 예로는 스프링의 DI, Proxy, ModelMapper 등이 있다.

 

사용 예시)

class Ad {
    private int idx;
    private String title;
    private String content; 
}
 
Class<Ad> c = Ad.class;
Field[] fields = class.getDeclaredFields();

for (final Field field : fields) {
    System.out.printf("%s %s\n", field.getType(), field.getName());
}
 

 

 

 

 

참고 자료

 

https://dublin-java.tistory.com/m/53

https://ebabby.tistory.com/m/4

https://yjh5369.tistory.com/m/entry/java-reflection%EC%9D%84-%ED%86%B5%ED%95%B4-class%EC%9D%98-setter-method%EB%A5%BC-%ED%98%B8%EC%B6%9C%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

728x90

'Java' 카테고리의 다른 글

ObjectMapper  (0) 2022.08.24
@PostConstruct, @PreDestroy  (0) 2022.08.24
UnrecognizedPropertyException  (0) 2022.08.23
JsonNode to Object  (0) 2022.08.23
mac 자바 8 설치  (0) 2022.08.19
'Java' 카테고리의 다른 글
  • ObjectMapper
  • @PostConstruct, @PreDestroy
  • UnrecognizedPropertyException
  • JsonNode to Object
mean-ji
mean-ji
저년차 기록들mean-ji 님의 블로그입니다.
mean-ji
저년차 기록들
mean-ji
전체
오늘
어제
  • 분류 전체보기 (104)
    • 소개 (1)
    • Server (25)
      • DevOps (9)
      • Database (4)
    • Spring (11)
    • Spring Boot (0)
    • Java (6)
    • Kotlin (3)
    • Vue.js (12)
      • Nuxt (12)
    • Node.js (3)
      • Express (2)
    • Python (9)
      • Flask (2)
    • Git (9)
    • IDE & Tool (4)
    • TIL (16)
    • 생각 (2)
    • 토스 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.
mean-ji
[Java] 리플렉션 공부
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.