- import java.lang.reflect.Method;
- public class Test {
- /**
- * @param args
- * @throws NoSuchMethodException
- * @throws SecurityException
- */
- public static void main(String[] args) throws Exception {
- Demo demo=new Demo();
- Class[] clazz=null;
- /*不知道参数的话,就必需得到所有的方法,在判断
- * demo.getClass().getMethod('add');这样会报错*/
- Method[] method=demo.getClass().getMethods();
- for(Method med:method){
- if(med.getName().equals("add")){
- /*得到参数类型的集合*/
- clazz=med.getParameterTypes();
- }
- }
- /**/
- Method add=demo.getClass().getMethod("add", clazz);
- add.invoke(demo, "hello",1);
- }
- }
- class Demo{
-
- public void add(String str,int x){
- System.out.println(str+x);
- }
- }
复制代码 |