获取方法的方法

image.png
image.png

  1. public class Users {
  2. private String username;
  3. private int userage;
  4. public int heigh;
  5. private int getHeigh() {
  6. return heigh;
  7. }
  8. private void setHeigh(int heigh) {
  9. this.heigh = heigh;
  10. }
  11. public Users(){
  12. }
  13. public Users(String username,int userage){
  14. this.userage=userage;
  15. this.username=username;
  16. }
  17. private Users(int userage){
  18. this.userage=userage;
  19. }
  20. public Users(String username){
  21. this.username=username;
  22. }
  23. public String getUsername() {
  24. return username;
  25. }
  26. public void setUsername(String username) {
  27. this.username = username;
  28. }
  29. public int getUserage() {
  30. return userage;
  31. }
  32. public void setUserage(int userage) {
  33. this.userage = userage;
  34. }
  35. }

如何获取类的方法

  1. import java.lang.reflect.Method;
  2. public class GetMethod {
  3. public static void main(String[] args) throws Exception {
  4. Class clazz = Users.class;
  5. Method[] methods=clazz.getDeclaredMethods(); //获取所有方法,包括pribate类型方法
  6. for(Method m:methods){
  7. System.out.println(m);
  8. System.out.println(m.getName());
  9. }
  10. System.out.println("-------------------");
  11. Method[] methods1=clazz.getMethods(); //获取所有方法,不包括private方法
  12. for(Method m:methods1){
  13. System.out.println(m);
  14. System.out.println(m.getName());
  15. }
  16. System.out.println("---------------------");
  17. Method method=clazz.getDeclaredMethod("setHeigh", int.class);
  18. System.out.println(method.getName());
  19. System.out.println("---------------------------");
  20. Method method1 = clazz.getMethod("setUserage", int.class);
  21. System.out.println(method1.getName());
  22. }
  23. }

获取后调用方法

  1. import java.lang.reflect.Method;
  2. public class GetMethod2 {
  3. public static void main(String[] args) throws Exception {
  4. Class clazz = Users.class;
  5. Method method = clazz.getMethod("setUserage", int.class);
  6. //实例化对象
  7. Object obj = clazz.newInstance();
  8. //通过setUserage赋值
  9. method.invoke(obj,66);
  10. //通过getUserage获取值
  11. Method method1 =clazz.getMethod("getUserage");
  12. Object value = method1.invoke(obj);
  13. System.out.println(value);
  14. }
  15. }