方法介绍

image.png

  1. public class Users {
  2. private String username;
  3. private int userage;
  4. public int heigh;
  5. public int getHeigh() {
  6. return heigh;
  7. }
  8. public 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. }public class Users {
  36. private String username;
  37. private int userage;
  38. public Users(){
  39. }
  40. public Users(String username,int userage){
  41. this.userage=userage;
  42. this.username=username;
  43. }
  44. private Users(int userage){
  45. this.userage=userage;
  46. }
  47. public Users(String username){
  48. this.username=username;
  49. }
  50. public String getUsername() {
  51. return username;
  52. }
  53. public void setUsername(String username) {
  54. this.username = username;
  55. }
  56. public int getUserage() {
  57. return userage;
  58. }
  59. public void setUserage(int userage) {
  60. this.userage = userage;
  61. }
  62. }

获取成员变量

  1. import java.lang.reflect.Field;
  2. public class GetField {
  3. public static void main(String[] args) throws NoSuchFieldException {
  4. Class clazz= Users.class;
  5. Field[] fields=clazz.getFields();
  6. for(Field f:fields){
  7. System.out.println(f);
  8. System.out.println(f.getName());
  9. }
  10. System.out.println("-------------");
  11. Field[] fields1 =clazz.getDeclaredFields();
  12. for(Field f:fields1){
  13. System.out.println(f);
  14. System.out.println(f.getName());
  15. }
  16. System.out.println("---------------");
  17. //Field field = clazz.getField("userage"); //会报错,因为uerage是private类型变量
  18. //System.out.println(field);
  19. System.out.println("----------------");
  20. Field field1 = clazz.getDeclaredField("userage");
  21. System.out.println(field1);
  22. }
  23. }

image.png

操作成员变量

  1. import java.lang.reflect.Field;
  2. public class GetField2 {
  3. public static void main(String[] args) throws Exception {
  4. Class clazz = Users.class;
  5. Field field = clazz.getField("heigh"); //不能是pribate类型变量,应为无法重新赋值
  6. //对象实例化
  7. Object obj=clazz.newInstance();
  8. //为成员变量赋予新的值
  9. field.set(obj,176);
  10. //获取成员变量的值
  11. Object o = field.get(obj);
  12. System.out.println(o);
  13. }
  14. }