@ApiModelProperty value动态取值
时间: 2023-10-07 20:14:50 浏览: 114
根据引用和引用,你可以通过反射获取实体类@ApiModelProperty注解的value值。下面是一个示例代码,供你参考:
```java
import io.swagger.annotations.ApiModelProperty;
import java.lang.reflect.Field;
import java.util.LinkedHashMap;
public class ReflectionUtils {
public static LinkedHashMap<String, String> getApiModelPropertyValues(String classPath) {
LinkedHashMap<String, String> res = new LinkedHashMap<>();
try {
Class<?> c = Class.forName(classPath);
Field[] declaredFields = c.getDeclaredFields();
for (Field field : declaredFields) {
if (field.getAnnotation(ApiModelProperty.class) != null) {
ApiModelProperty annotation = field.getAnnotation(ApiModelProperty.class);
String value = annotation.value();
res.put(field.getName(), value);
}
}
return res;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}
```
通过调用`getApiModelPropertyValues`方法,并传入实体类的类路径作为参数,你可以获取到@ApiModelProperty注解的value值,并将属性名作为key,注释作为value返回一个LinkedHashMap。
参考引用,你可以使用该方法获取@ApiModelProperty的value值name值,如下所示:
```java
LinkedHashMap<String, String> apiModelPropertyValues = ReflectionUtils.getApiModelPropertyValues("com.example.entity.User");
String nameValue = apiModelPropertyValues.get("uuid");
```
其中,"com.example.entity.User"是实体类的类路径,"uuid"是你想要获取的属性名对应的value值。
希望这个回答能够帮到你。如果还有其他问题,请随时提问。
阅读全文