Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- spring
- 정보처리기사
- param
- 그레이들
- forTokens
- Oracle
- c:out
- Java
- map
- el표기법
- 프레임워크
- List
- JSTL
- DB
- 프로젝트
- 스프링
- jsp
- set
- sql
- servlet
- 개발자
- sendRedirect
- IT
- 웹개발자
- forward
- 리액트
- 2021년
- MVC
- 1회
- 실기
Archives
- Today
- Total
룽쓰의 개발도구
MVC 모델을 만들면서, Class.forName(); 본문
WEB과 자바를 연결하고, 자바와 DB(Oracle)을 연결하면서 단 한 번도 궁금해하지 않았던 게 있다.
Class.forName() 메서드는 대체 뭘까? 도대체 뭐길래 계속 쓰고 있는 것일까?
그 해답은 생각보다 쉬웠지만 그걸 알아보려고 노력하지 않았던 나의 과거가 아쉽다.
Class<?> handlerClass = Class.forName(handlerClassName);
CommandHandler handlerInstance = (CommandHandler)handlerClass.newInstance();
commandHandlerMap.put(command, handlerInstance);
예를 들어 위와 같은 코드가 있다고 생각해보자.
여기서 handlerClassName은 CommandHandler 인터페이스를 구현한 클래스이다.
즉, Class.forName() 메서드는 괄호 안에 있는 이름을 가진 Class를 찾아오겠다는 것이고, 두 번째 줄을 통해서 다형성을 이루면서 새로운 객체를 하나 생성했다.
그리고 Map계열인 commandHandlerMap에 <String, Command> 문자열과 커맨드 객체를 삽입해서 추가할 수 있었다.