反射获取所有属性名,判断属性上是否有此注解以及注解名获取
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(), "");
}
}