获取类的属性的字段命

227 阅读1分钟

反射获取所有属性名,判断属性上是否有此注解以及注解名获取

public class AppExecuteResultDTO {
    /**
     * 应用编号
     */
    @ApiModelProperty(value = "应用编号")
    private String applicationId;

    /**
     * 业务单号
     */
    @ApiModelProperty(value = "业务单号")
    private String businessKey;
    /**
     * 结果编码
     */
    @ApiModelProperty(value = "结果编码")
    private String resultCode;
}

AppExecuteResultDTO appExecuteResultDTO = new AppExecuteResultDTO();

//获取类的属性
Field[] declaredFields = appExecuteResultDTO.getClass().getDeclaredFields();

Map<String, Object> returnParamMap = new HashMap<>();

//遍历属性
for (Field field : declaredFields) {
    //判断是否包含该注解
    if (field.isAnnotationPresent(ApiModelProperty.class)) {
       //获取该注解名
        String name = field.getAnnotation(ApiModelProperty.class).value();
        returnParamMap.put(field.getName(), name);
    } else {
        returnParamMap.put(field.getName(), "");
    }
}