java/jsp 해당 메소드가 있는지 체크
원글(이글루): 2011-06-15 16:51:14
처: http://linuxne.springnote.com/pages/1101296.xhtml
import java.lang.reflect.Method;
public class DynamicLoadTest {
public static void main(String[] args){
Class<?> dymClass = null;
Method dymMethod = null;
try {
// 다이나믹 클래스 인스턴스 생성
dymClass = Class.forName("TestClass");
Object obj = dymClass.newInstance();
/- ==============================[오브젝트형]================================*-
// 다이나믹 메소드 호출 (return void)
dymMethod = obj.getClass().getMethod("setStrVar", new Class[]{java.lang.String.class});
Object var1 = dymMethod.invoke(obj, new Object[]{new String("1111")});
System.out.println((var1 != null?var1.getClass().getName():null) +" : " +var1); // 출력
// 다이나믹 메소드 호출 (return String)
dymMethod = obj.getClass().getMethod("getStrVar", (Class[])null);
Object var2 = dymMethod.invoke(obj, (Object[])null);
System.out.println((var2 != null?var2.getClass().getName():null) +" : " +var2); // 출력
/- ==============================[기본형]================================*-
// 다이나믹 메소드 호출 (return void)
dymMethod = obj.getClass().getMethod("setIntVar", new Class[]{int.class});//Integer.TYPE 동일 사용가능
Object var3 = dymMethod.invoke(obj, new Object[]{3333});
System.out.println((var3 != null?var3.getClass().getName():null) +" : " +var3); // 출력
// 다이나믹 메소드 호출 (return int)
dymMethod = obj.getClass().getMethod("getIntVar", (Class[])null);
Object var4 = dymMethod.invoke(obj, (Object[])null);
System.out.println((var4 != null?var4.getClass().getName():null) +" : " +var4); // 출력
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class TestClass {
String strVar;
int intVar;
public void setStrVar(String strVar){
this.strVar = strVar;
}
public String getStrVar(){
return strVar;
}
public void setIntVar(int intVar){
this.intVar = intVar;
}
public int getIntVar(){
return intVar;
}
}