Java 通过反射获取实体类对应的注释

一、使用@ApiModelProperty 获取注释信息 需要引入 swagger 依赖

        ①先引入swagger依赖

    
		com.spring4all
		swagger-spring-boot-starter
		1.9.1.RELEASE
	

        ②准备实体类 注意(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 list = new ArrayList<>();
        //加载类
        Class 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.实体类字段修饰符问题 根据修饰符使用不同的方法

你可能感兴趣的:(java,开发语言)