反射机制反射类中方法Method

谁践踏了优雅 2023-03-01 13:29 66阅读 0赞

反射机制反射类中方法Method

测试代码:

  1. package reflect;
  2. import java.lang.reflect.Method;
  3. import java.lang.reflect.Modifier;
  4. public class Test11 {
  5. public static void main(String[] args) throws Exception {
  6. // 反射获取类
  7. Class uClass = Class.forName("reflect.UserService");
  8. // 获取类中所有的方法,显然不包含构造方法
  9. Method[] methods = uClass.getDeclaredMethods();
  10. System.out.println(methods.length); // 3
  11. // 遍历所有的方法
  12. for (Method m : methods) {
  13. // 获取修饰符列表代号和,转换成字符串
  14. int i = m.getModifiers();
  15. String modStr = Modifier.toString(i);
  16. // 获取该方法的返回值类型
  17. Class returnType = m.getReturnType();
  18. String returnStr = returnType.getSimpleName();
  19. // 获取方法的变量名
  20. String mName = m.getName();
  21. // 输出方法信息:修饰符列表,返回值类型,方法名
  22. System.out.print(modStr + " " + returnStr + " " + mName + "(");
  23. // 获取该方法的形式参数列表的类型
  24. Class[] parClasses = m.getParameterTypes();
  25. StringBuilder s = new StringBuilder();
  26. if (parClasses.length != 0) {
  27. for (int j = 0; j < parClasses.length ; j++) {
  28. s.append(parClasses[j].getSimpleName() + ", ");
  29. }
  30. s.deleteCharAt(s.length()-1);
  31. s.deleteCharAt(s.length()-1);
  32. }
  33. System.out.println(s + ")\n");
  34. }
  35. }
  36. }
  37. class UserService {
  38. public boolean login(String name, String password) {
  39. if ("admin".equals(name) && "abc123".equals(password)) {
  40. return true;
  41. }
  42. return false;
  43. }
  44. public void logout() {
  45. System.out.println("已退出!!!");
  46. }
  47. private void doSome() {
  48. System.out.println("doSome()方法执行!");
  49. }
  50. }

发表评论

表情:
评论列表 (有 0 条评论,66人围观)

还没有评论,来说两句吧...

相关阅读