반응형

Java 동적 클래스 생성 및 호출 (reflection)

 

자바 리플렉션을 쉽게 말하자면 자바에서 구체적인 클래스를 알지 못해도 해당 클래스를 호출하고, 메소드, 변수 등에 접근 가능할 수 있도록 해주는 기능입니다.

 

사용하는 방법은 아래와 같습니다.

String className = "패키지명.클래스명";
Class<?> cls = Class.forName(className); // 다음과 같이하면 클래스를 로딩
Object obj = cls.newInstance(); // 해당 클래스 인스턴스 생성
Method method = cls.getMethod("메소드명", String.class); // 메소드 로딩( 메소드의 인자값이 String 하나가 들어가 있다)
String result = method.method.invoke(obj, "야호");// 메소드 인자값인 String 하나를 "야호"라고 넣는다.

다음과 같이하면 해당클래스의 메소드를 호출해서 result 에 값이 들어간다.

 

"패키지명.클래스명"과 "메소드명"은 실제로 있어야지 호출이 가능하다.

반응형

+ Recent posts