package invoke;
import java.lang.reflect.Method;
public class ClassDemo1 {
public static void main(String[] args) {
A a1 = new A();
Class a = a1.getClass();
try {
Method m = a.getMethod("print", int.class,int.class);//有参数直接写
Object o = m.invoke(a1, 10,20);
System.out.println("**************************");
Method m1 = a.getMethod("print", String.class,String.class);
Object o1 = m1.invoke(a1, "haha","hehe");
System.out.println("**************************");
Method m2 = a.getMethod("print");//没有参数不用添加,直接获取
Object o3 = m2.invoke(a1);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class A{
public void print() {
System.out.println("卧槽");
}
public void print(int a,int b) {
System.out.println(a+b);
}
public void print(String a,String b) {
System.out.println(a.toUpperCase()+","+b.toLowerCase());
}
}
输出:
30
HAHA,hehe
卧槽