• 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();
    }
  • 相关阅读:
    在String中添加移动构造函数和移动赋值运算符
    自定义String类,并且实现在STL容器中添加自定义的类型
    allocator例子
    Messages的例子
    java unicode转中文
    Oracle Unicode转中文(解码)
    dom4j解析XML
    如何下载HLS视频到本地(m3u8)
    background-position
    XMPP协议实现即时通讯底层书写 (二)-- IOS XMPPFramework Demo+分析
  • 原文地址:https://www.cnblogs.com/cyh1282656849/p/13678791.html
Copyright © 2020-2023  润新知