zoukankan      html  css  js  c++  java
  • 自定义字段注解

    自定义字段描述

    @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

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

  • 相关阅读:
    [leetcode-135-Candy]
    [leetcode-151-Reverse Words in a String]
    [leetcode-139-Word Break]
    [leetcode-129-Sum Root to Leaf Numbers]
    [leetcode-143-Reorder List]
    [leetcode-141-Linked List Cycle]
    oracle 环境变量(中文显示乱码)
    Oracle 自增长id
    Spring.net 事件的注入
    Spirng.net 替换任意方法
  • 原文地址:https://www.cnblogs.com/mr-yang-localhost/p/9152269.html
Copyright © 2011-2022 走看看