프로그래밍/Java

[java] invoke

galad 2010. 3. 9. 11:01
String metaField = ProductConstant.FIELD_NAME_FOR_HD_DRM;
Class[] cParam = new Class[]{String.class}; // 메소드 얻을 때 사용할 파라미터 타입. 메소드명, 파라미터갯수 및 종류로 해당 메소드를 찾는다
Object[] oParam = new Object[]{hdProductDrmYn}; // 실제 invoke 시 사용할 파라미터값

Class cls = pi.getClass(); // 메소드를 invoke할 클래스

// 메소드 얻기 getMethod(메소드명, 파라미터타입) : get 메소드면 파라미터 필요없음
Method cMtd = cls.getMethod("set" + metaField.substring(0, 1).toUpperCase() + metaField.substring(1), cParam);

// invoke(invoke할 객체, 파라미터)
cMtd.invoke(pi, oParam);