一、使用@ApiModelProperty 获取注释信息 需要引入 swagger 依赖
①先引入swagger依赖
<dependency>
<groupId>com.spring4all</groupId>
<artifactId>swagger-spring-boot-starter</artifactId>
<version>1.9.1.RELEASE</version>
</dependency>
②准备实体类 注意(swagger 依赖没有加载无法使用@ApiModelProperty 注解)
@Data
public class OrderCsv implements Serializable {
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 年龄
*/
@ApiModelProperty("年龄")
private String age;
/**
* id
*/
@ApiModelProperty("id")
private String id;
}
二、具体方法使用main方法测试
public static void main(String[] args) {
//获取对象 属性注释 准备集合接收 字段注释
List<String> list = new ArrayList<>();
//加载类
Class<OrderCsv> orderDtoClass = OrderCsv.class;
/*
* 1.getDeclaredFields 获取当前类的所有字段,包括protected/默认/private修饰的字段;不包括父类public修饰的字段
* 2.getFields 方法获取当前类或父接口的public修饰的字段
* 当前使用1就ok 根据需要修改方法
*/
Field[] declaredFields = orderDtoClass.getDeclaredFields();
//遍历数据
for (Field declaredField : declaredFields) {
//isAnnotationPresent 查看当前字段是否加有@ApiModelProperty注解
boolean annotation = declaredField.isAnnotationPresent(ApiModelProperty.class);
// true 是含有 含有再获取添加到list中
if (annotation) {
String value = declaredField.getAnnotation(ApiModelProperty.class).value();
list.add(value);
}
}
}
注意点: 1.实体类字段是否添加@ApiModelProperty 注解
2.实体类字段修饰符问题 根据修饰符使用不同的方法