IT/프로그래밍

java/jsp 해당 메소드가 있는지 체크

박모 2023. 9. 13. 13:54
728x90

원글(이글루): 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;
 }
}

728x90