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.Test
public 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