Java obtiene todos los campos de la entidad y el valor de anotación correspondiente.

1. Atributos de la entidad

@Data
@Table(name = "user")
@ApiModel(value="用户表")
public class User {
    
    

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("用户名")
    private String username;

    @ApiModelProperty("密码")
    private String password;

    @ApiModelProperty(value = "创建人")
    private String crtUser;

    @ApiModelProperty(value = "创建时间")
    private Date crtTime;

    @ApiModelProperty(value = "修改人")
    private String updUser;

    @ApiModelProperty(value = "修改时间")
    private Date updTime;
    
}

2. Obtener atributos de entidad y valores de anotación.

    /**
     * description 获取实体的所有字段,和对应注解值
     *
     * @param object 实体
     * @author yanzy
     * @version 1.0
     * @date 2021/3/24 15:47
     */
    public static Map<String, String> getFieldAnnotation(Object object) {
    
    
        Field[] fields = object.getClass().getDeclaredFields();
        Map<String, String> resultMap = new HashMap();
        for (Field field : fields) {
    
    
            // 是否引用ApiModelProperty注解
            boolean bool = field.isAnnotationPresent(ApiModelProperty.class);
            if (bool) {
    
    
                String value = field.getAnnotation(ApiModelProperty.class).value();
                resultMap.put(field.getName(), value);
            }
        }
        return resultMap;
    }

3. Ejecute el programa, podrá ver que se han obtenido los atributos y los valores de anotación de atributos.
inserte la descripción de la imagen aquí

4. Hay muchos campos innecesarios en la entidad, como el creador, la hora de creación, etc., que deben filtrarse y optimizarse el código.

    /**
     * description 获取实体的所有字段,和对应注解值
     *
     * @param object    实体
     * @param filterMap 需要过滤的字段
     * @author yanzy
     * @version 1.0
     * @date 2021/3/24 15:47
     */
    public static Map<String, String> getFieldAnnotation(Object object, Map<String, String> filterMap) {
    
    
        Field[] fields = object.getClass().getDeclaredFields();
        Map<String, String> resultMap = new HashMap();
        for (Field field : fields) {
    
    
            if (!filterMap.containsValue(field.getName())) {
    
    
                // 是否引用ApiModelProperty注解
                boolean bool = field.isAnnotationPresent(ApiModelProperty.class);
                if (bool) {
    
    
                    String value = field.getAnnotation(ApiModelProperty.class).value();
                    resultMap.put(field.getName(), value);
                }
            }
        }
        return resultMap;
    }

5. Al ejecutar el programa para filtrar el creador y el modificador,
inserte la descripción de la imagen aquí
se pueden ver estos dos atributos, que han sido filtrados.

Supongo que te gusta

Origin blog.csdn.net/qq_39486119/article/details/115179376
Recomendado
Clasificación