java反射机制,通过类名获取对象,通过方法名和参数调

try {
 //得到类对象
Class c = Class.forName("完整类名");
Object yourObj = c.newInstance();
 //得到方法
Method methlist[] = cls.getDeclaredMethods();
 for (int i = 0; i < methlist.length; i++) {
 Method m = methlist[i];
 }
 //获取到方法对象,假设方法的参数是一个int,method名为setAge
 Method sAge = c.getMethod("setAge", new Class[] {int.class});
 //获得参数Object
 Object[] arguments = new Object[] { new Integer(37)};
 //执行方法
sAge.invoke(yourObj , arguments);
 } catch (Exception e) {
}

getDeclaredMethod*()获取的是类自身声明的所有方法,包含public、protected和private方法。

getMethod*()获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。

 

 


测试例子

package com.sf.test;

import java.lang.reflect.Method;

public class RefTest {

    public static void main(String args[]) throws Exception {         Class clazz = Class.forName("com.sf.test.Test");         Object object = clazz.newInstance();         Method refTest = clazz.getDeclaredMethod("refTest");         Method refTest1 = clazz.getDeclaredMethod("refTest1",String.class);         refTest1.invoke(object, "0021212");         refTest.invoke(object);     } }


 

package com.sf.test;

public class Test {   public Test(){      }   public void refTest() {   System.out.println("00000000");  }   public void refTest1(String string) {   System.out.println(string);  } }


 

java反射机制,通过类名获取对象,通过方法名和参数调,布布扣,bubuko.com

java反射机制,通过类名获取对象,通过方法名和参数调

上一篇:蚂蚁微信-商家入驻后支付失败


下一篇:Composer 基本使用