zoukankan      html  css  js  c++  java
  • java 注解

    注解(Annotation)就像一个标签,用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。

    JDK预置注解包括:
    @Deprecated,即将废弃的标记;
    @Override,表示当前的方法定义将覆盖超类中的方法;
    @SuppressWarnings,阻止警告的意思
    @SafeVarargs,参数安全类型注解
    @FunctionalInterface,函数式接口注解
     
     

    元注解

    元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面。
     
    @Retention,注解的存活时间,取值如下:
    • RetentionPolicy.SOURCE,注解只在源码阶段保留,将被编译器丢弃;
    • RetentionPolicy.CLASS,注解保留到编译期间,将被VM丢弃;
    • RetentionPolicy.RUNTIME,注解保留到运行期间,因此可以通过反射机制读取注解的信息;
     
    @Target,限定注解应用的场景,注解可以加在包、类,属性、方法,方法的参数以及局部变量上,取值如下:
    • ElementType.ANNOTATION_TYPE,可以给一个注解进行注解
    • ElementType.CONSTRUCTOR,可以给构造方法进行注解
    • ElementType.FIELD,可以给属性进行注解
    • ElementType.LOCAL_VARIABLE,可以给局部变量进行注解
    • ElementType.METHOD,可以给方法进行注解
    • ElementType.PACKAGE,可以给一个包进行注解
    • ElementType.PARAMETER,可以给一个方法内的参数进行注解
    • ElementType.TYPE,可以给一个类型进行注解,比如类、接口、枚举
     
    @Repeatable,注解可以被多次应用
    @Inherited,而是说如果一个超类被 @Inherited 注解过的注解进行注解的话,那么如果它的子类没有被任何注解应用的话,那么这个子类就继承了超类的注解。
    @Documented,将注解中的元素包含到Javadoc中;

    获取注解信息

    /**
         * 获取实体类上注解中国的所有字段名
         *
         * @param type
         * @return java.util.List<java.lang.String>
         * @author CYH
         * @date 2020/5/27 0027 11:35
         **/
        public static <T> List<String> getEntityFieldList(Class<T> type) {
            try {
                List<String> list = new ArrayList<>();
                Field[] fields = type.getDeclaredFields();
                for (Field field : fields) {
                    list.add(field.getAnnotation(FieldColumn.class).value());
                }
                return list;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface FieldColumn {
        public String value();
    }
  • 相关阅读:
    HTTP代理浅说
    基于互联网内容的中文分词小实验
    spring、spring mvc、mybatis框架整合基本知识
    数据结构中缀表达式转后缀表达式以及后缀转中缀表达式
    后缀表达式与中缀表达式互转的理论知识【转】
    jquery的ajax与spring mvc对接注意事项
    Linux centos7下安装配置redis及Redis desktop Manager工具连接注意事项
    Spring事务异常回滚,捕获异常不抛出就不会回滚
    webapp 慎用setInterval、setTimeout
    javascript中String 对象slice 和substring 区别
  • 原文地址:https://www.cnblogs.com/cyh1282656849/p/13678791.html
Copyright © 2011-2022 走看看