反射获取成员方法
程序员文章站
2022-07-12 16:15:36
...
无参方法:
public class A{
public void hello() {
System.out.println("hello world");
}
}
public class TestClassLoad {
public static void main(String[] args) throws Exception {
Class<?> clz = Class.forName("A");
Object o = clz.newInstance(); //这两行实现了类的装载、链接和初始化(newInstance方法实际上也是使用反射调用了方法)
Method m = clz.getDeclaredMethod("hello"); //获取类A中名字叫hello的方法
m.invoke(o);//实现了从class对象中获取到method对象然后执行反射调用
}
}
有参方法:
public class A {
public void hello(int a,String b) {
System.out.println("hello world"+a+"======"+b);
}
}
public class TestClassLoad {
public static void main(String[] args) throws Exception {
Class<?> clz = Class.forName("A");
A a=new A(); //这两行实现了类的装载、链接和初始化(newInstance方法实际上也是使用反射调用了方法)
Method m = clz.getDeclaredMethod("hello",int.class,String.class);
m.invoke(a,3,"abc");//实现了从class对象中获取到method对象然后执行反射调用
}
}