#목적
1. Generic 사용 예시 및 환경
#내용
1. 동적으로 Class 객체를 생성하고 함수를 호출해야했다.
2. 공통되는 패키지 경로에 Class명을 붙인다.
a. String className = "seungri.common." + "ClassName";
3. Class를 선언하고 forName함수를 이용하여 Class 및 인터페이스 초기화
a. Clasa<?> simpleClass;
i. 여기서 ? 가 Generic이다.
b. simpleClass = Class.forName(className);
i. 참고 링크 : https://kyun2.tistory.com/23
4. 객체 초기화를 위해 생성자를 호출해야했다. 이를 위해 Constructor 객체를 선언 및 생성한다.
a. Constructor<?> simpleConstructor = simpleClass.getConstructor(String.class);
i. String변수를 전달받는 생성자
5. 생성자를 이용하여 객체 생성
a. Object newSimple = simpleConstructor.newInstance("temp");
6. String변수를 전달받는 func 함수 호출
a. newSimple.getClass().getMethod("func", String.class).invoke(newSimple, "param");
7. Generic은 jdk 1.5부터 추가되었다.
#배운점
1. Generic이 jdk 1.5부터 추가된 내용인줄 몰랐는데 이번에 jdk 1.4환경 빌드를 수행하면서 알게되었다.
고객사중 jdk 1.5이상을 사용할 수 없는 환경이 있다고 들었다.
에흉... 예전에 Generic을 사용하지 않고 Class 및 Method 동적 생성 및 호출에 대한 내용을 했던거 같은데..
급한 이슈 처리하고나서 빨리 해놔야겠다..
'개발 > Java' 카테고리의 다른 글
[java] DataInputStream.read(byte[] b)와 ByteArrayOutputStream.write(byte[] b)의 b (0) | 2021.07.01 |
---|---|
[java] JSON null check (0) | 2021.06.13 |
[java] switch-case 문자열 조건 (0) | 2021.04.19 |
[java] Socket과 Stream (0) | 2020.11.14 |
[java] Annotation 인식 (0) | 2020.11.11 |