获取方法的方法


public class Users {
private String username;
private int userage;
public int heigh;
private int getHeigh() {
return heigh;
}
private void setHeigh(int heigh) {
this.heigh = heigh;
}
public Users(){
}
public Users(String username,int userage){
this.userage=userage;
this.username=username;
}
private Users(int userage){
this.userage=userage;
}
public Users(String username){
this.username=username;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
}
如何获取类的方法
import java.lang.reflect.Method;
public class GetMethod {
public static void main(String[] args) throws Exception {
Class clazz = Users.class;
Method[] methods=clazz.getDeclaredMethods(); //获取所有方法,包括pribate类型方法
for(Method m:methods){
System.out.println(m);
System.out.println(m.getName());
}
System.out.println("-------------------");
Method[] methods1=clazz.getMethods(); //获取所有方法,不包括private方法
for(Method m:methods1){
System.out.println(m);
System.out.println(m.getName());
}
System.out.println("---------------------");
Method method=clazz.getDeclaredMethod("setHeigh", int.class);
System.out.println(method.getName());
System.out.println("---------------------------");
Method method1 = clazz.getMethod("setUserage", int.class);
System.out.println(method1.getName());
}
}
获取后调用方法
import java.lang.reflect.Method;
public class GetMethod2 {
public static void main(String[] args) throws Exception {
Class clazz = Users.class;
Method method = clazz.getMethod("setUserage", int.class);
//实例化对象
Object obj = clazz.newInstance();
//通过setUserage赋值
method.invoke(obj,66);
//通过getUserage获取值
Method method1 =clazz.getMethod("getUserage");
Object value = method1.invoke(obj);
System.out.println(value);
}
}