一、获取Method
- 继承的方法Method无法反射,会被编译器强制执行,因此反射一个类的方法时不考虑父类的方法,只考虑当前类的方法
1. 常用方法
- 参考:Method 类常用方法
- Class.getMethod(String name,Class…parameterTypes);
根据方法名称和相关参数,来定位需要查找的Method对象并返回,parameterTypes:Method的参数类型的列表(参数顺序需按声明Method时的参数列表排列)
- Class.getMethods();
获取所有public方法,包括类自身声明的public方法、父类中的public方法、实现的接口方法
- Class.getDeclaredMethod(String name, Class… parameterTypes);
返回一个Method对象,反映此Class对象所表示的类或接口的指定已声明方法
- Class.getDeclaredMethods();
获取本类中所有方法,包括类自身的方法、重写的父类的方法、实现的接口方法
2. 测试用例
public class User {
public int id;
private String name;
String address;
protected int sno;
public User() {
}
public User(int id, String name, String address, int sno) {
super();
this.id = id;
this.name = name;
this.address = address;
this.sno = sno;
}
public void study() {
System.out.println("study...");
}
public void eat(int a,String b) {
System.out.println("eat...");
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", address=" + address + ", sno=" + sno + "]";
}
@Override
public int