成员变量的反射

梦里梦外; 2022-06-02 00:53 241阅读 0赞

成员变量的反射

  1. /**
  2. * 成员变量也是对象
  3. * java.lang.reflect.Field
  4. * Field类封装了关于成员变量的操作
  5. * getFields()方法获取的是所有的public的成员变量的信息
  6. * getDeclaredFields获取的是该类自己生命的成员变量的信息
  7. */
  8. // Field [] fs=c.getFields();
  9. Field [] fs=c.getDeclaredFields();
  10. for( Field field:fs ){
  11. //得到成员变量类型的类类型
  12. Class filedType=field.getType();
  13. String typeName=filedType.getTypeName();
  14. //得到成员变量的名称
  15. String filedName=field.getName();
  16. System.out.println(typeName+" "+filedName);
  17. }
  18. /**
  19. * 打印对象的构造函数的信息
  20. * @param obj
  21. */
  22. public static void printConMessage(Object obj){
  23. Class c=obj.getClass();
  24. /**
  25. * 构造函数也是对象
  26. * java.lang.Constructor中封装了构造函数的信息
  27. * getConstructors获取所有的public的构造函数
  28. * getDeclaredConstructors得到所有的构造函数
  29. */
  30. // Constructor [] cs=c.getConstructors();
  31. Constructor [] cs=c.getDeclaredConstructors();
  32. for(Constructor constructor:cs){
  33. System.out.print(constructor.getName()+"(");
  34. //获取构造函数的参数列表-->得到的是参数列表的类类型
  35. Class [] paramTypes=constructor.getParameterTypes();
  36. for(Class class1:paramTypes){
  37. System.out.print(class1.getName()+",");
  38. }
  39. System.out.println(")");
  40. }
  41. }

发表评论

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

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

相关阅读