获取方法的方法


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); }}