개발/Java

[java] Generic을 사용해 Class 및 Method 동적 생성 및 호출

승리승리 2021. 4. 18. 17:27

#목적

   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 동적 생성 및 호출에 대한 내용을 했던거 같은데..

급한 이슈 처리하고나서 빨리 해놔야겠다..