1. enum StudentEnum {
  2. ZS("LINS1","zs", "18"),
  3. LS("LINS2","ls", "16"),
  4. WW("LINS3","ww", "16");
  5. private String lable;
  6. private String name;
  7. private String age;
  8. public String getLable() {
  9. return lable;
  10. }
  11. public void setLable(String lable) {
  12. this.lable = lable;
  13. }
  14. StudentEnum(String lable, String name, String age) {
  15. this.name = name;
  16. this.lable = lable;
  17. this.age = age;
  18. }
  19. public String getName() {
  20. return name;
  21. }
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25. public String getAge() {
  26. return age;
  27. }
  28. public void setAge(String age) {
  29. this.age = age;
  30. }
  31. public static StudentEnum getByName(String name) {
  32. StudentEnum[] values = StudentEnum.values();
  33. for (StudentEnum studentEnum : values) {
  34. if (StringUtils.equals(name, studentEnum.getName())) {
  35. return studentEnum;
  36. }
  37. }
  38. return null;
  39. }
  40. }
  • Student对象 ```java @Data public class Student {

    private String age; private String name;

}

  1. 反射获取
  2. ```java
  3. @org.junit.Test
  4. public void test5() throws Exception {
  5. Student stu = new Student();
  6. //模拟解析json后的lable的值
  7. String inputLable = "LINS2";
  8. Class<StudentEnum> testEnumClass = StudentEnum.class;
  9. StudentEnum[] enumConstants = testEnumClass.getEnumConstants();
  10. Method getLable = testEnumClass.getMethod("getLable");
  11. Method getName = testEnumClass.getMethod("getName");
  12. Method getAge = testEnumClass.getMethod("getAge");
  13. for (StudentEnum studentEnum : enumConstants) {
  14. if (StringUtils.equals(inputLable,getLable.invoke(studentEnum).toString())){
  15. stu.setAge(getAge.invoke(studentEnum).toString());
  16. stu.setName(getName.invoke(studentEnum).toString());
  17. }
  18. }
  19. System.out.println(stu);
  20. }

运行结果

image.png
原文链接:https://blog.csdn.net/weixin_42893085/article/details/121630627