Virtual Method Invoke를 이용하면 무엇을 실행하게 될지 알수 없는 동적 바인딩인 메서드를 실행할수 있다.
이를 통해 웹서비스에서 많이 볼수 있는 플러그인이라던가, 위젯을 손쉽게 구현할 수 있다.
[code]import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class DynamicClassLoader {
public Object execute(Class clazz, String runner, Object… args)
throws ClassNotFoundException, SecurityException,
InstantiationException, IllegalAccessException {
Method[] methods = clazz.getMethods();
try {
for (Method method : methods) {
if (method.getName().equals(runner)) {
return method.invoke(this, args);
}
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
}[/code]
첫번째 인자로 읽어들일 클래스를 넣어주고, 두번째 인자로 수행할 메서드명을 입력한다.
그 이후에는 인자값들을 넣어주면 된다. 가변인자를 사용한다.
가변인자와 발전된 for문 형식때문에 위의 소스는 JDK 5이상에서만 작동한다.
invoke를 통해서 마치 자신이 해당 클래스에서 호출한 메서드인것처럼 작동하게 된다.
4화에서 각성하는 노노!
우주괴물이라고만 생각했던 버스터 군단
행성을 두조각 내어버린다; 여러 메카 시리즈중에 지존 메카가 아닐까;
어떻게 해서든 그녀를 만나 이야기 하고 싶어.
‘반파당한 버스터머신 1&2호’
1만 2천년 후의 지구인가…
인간은? 불빛이 보이질 않아요.
역시, 인류는 멸망해 버린걸까?
네가 계속 동경해오던 전설의 여자 아이…
노노리리가 오늘밤 돌아오니까!
어서오세요.

고마워, 건버스터!
그날 밤, 버스터 머신 1호2호 및 탑승자가 귀환했다.