enum StudentEnum {ZS("LINS1","zs", "18"),LS("LINS2","ls", "16"),WW("LINS3","ww", "16");private String lable;private String name;private String age;public String getLable() {return lable;}public void setLable(String lable) {this.lable = lable;}StudentEnum(String lable, String name, String age) {this.name = name;this.lable = lable;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public static StudentEnum getByName(String name) {StudentEnum[] values = StudentEnum.values();for (StudentEnum studentEnum : values) {if (StringUtils.equals(name, studentEnum.getName())) {return studentEnum;}}return null;}}
Student对象 ```java @Data public class Student {
private String age; private String name;
}
反射获取```java@org.junit.Testpublic void test5() throws Exception {Student stu = new Student();//模拟解析json后的lable的值String inputLable = "LINS2";Class<StudentEnum> testEnumClass = StudentEnum.class;StudentEnum[] enumConstants = testEnumClass.getEnumConstants();Method getLable = testEnumClass.getMethod("getLable");Method getName = testEnumClass.getMethod("getName");Method getAge = testEnumClass.getMethod("getAge");for (StudentEnum studentEnum : enumConstants) {if (StringUtils.equals(inputLable,getLable.invoke(studentEnum).toString())){stu.setAge(getAge.invoke(studentEnum).toString());stu.setName(getName.invoke(studentEnum).toString());}}System.out.println(stu);}
运行结果

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