自定义字段注解

自定义字段描述

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface FieldDescrib {
    String name();
    String desc() default "";
}

@Data
public class StudentDemo {
    @FieldDescrib(name = "学生的年纪", desc = "正常情况是1-100")
    private Integer age;
    @FieldDescrib(name = "学生的性别", desc = "0:未知 1:男 2:女")
    private Integer sex;
}

获取字段自定义注解

    @RequestMapping("/getAttrVals")
    public void getAttrVal() {
        StudentDemo StudentDemo = new StudentDemo();
        StudentDemo.setAge(20);
        StudentDemo.setSex(1);

        Field[] fields = StudentDemo.getClass().getDeclaredFields();

        String getFields = "";
        for (Field field : fields) {
            FieldDescrib declaredAnnotation = field.getDeclaredAnnotation(FieldDescrib.class);
            System.out.println(declaredAnnotation);
            getFields += "name:" + field.getName() + "=" + ModelToMap.getFieldValueByName(field.getName(), StudentDemo) + ",";
        }

        System.out.println(getFields.substring(0, getFields.length() - 1));
    }

输出:

@com.demo.common.FieldDescrib(desc=正常情况是1-100, name=学生的年纪)
@com.demo.common.FieldDescrib(desc=0:未知 1:男 2:女, name=学生的性别)
name:age=20,name:sex=1

可以动态实现一些自定义的功能。

 

转载于:https://www.cnblogs.com/mr-yang-localhost/p/9152269.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值