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

    1.理解注解

      1.java 1.5开始,java增加了对元数据的支持也就是注解,可以为程序编译、类加载、运行时被读取,并执行相应的处理。

      2.Annotation修饰符可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。@XXX("name=value"...)

      3.注解的继承是相对于类而言的,对于接口时无效的 ;注解只继承父类的类注解,不继承方法注解

      4.不影响代码逻辑,只是辅助

      5.没有注解解释器,注解就没有意义

      6.如图 

       

    2.基本注解

    @Override :用来指定方法覆载的,它可以强制一个子类必须要覆盖父类的方法。

    @Deprecated :用来表示某个程序元素(类、方法等)已过时,当其他程序使用已过时的类、方法时,编译器将会给出警告。 

    @SuppressWarnings:注解会告知编译器阻止特殊类型的警告信息。@SuppressWarnings("unchecked")

    @SafeVarargs【Java7新增】:如果把一个没有定义泛型的集合,赋给一个有定义泛型的集合,会发生堆污染,会报错。@SafeVarargs可以抑制这个报错。

    @FunctionalInterface【Java8新增】:用来限制修饰的接口必须是一个函数式接口,不然会报错。

    @Repeatable【java8新增】:可重复的注解 元注解

    3.元注解

      1.元注解:描述注解的注解,java提供了四种元注解,即@Retention、@Target、@Documented、@Inherited、@Repeatable

      2.介绍这五中种元注解的使用

    @Retention 保留策略(指定一条注解保留多长时间)   RetentionPolicy类型取值有三个【source、class、runtime】

    @Retention(RetentionPolicy.RUNTIME)
    public @interface MyTag(){
        定义属性...          
    }

    -source: 不包含在类文件(.class文件)中的注解,但存在于源代码中

    -class : 包含在类文件中的注解,但JVM不需要将它们载入,默认保留策略

    -runtime:包含在类文件中的注解,并由JVM载入,通过反射获取该注释

     @Target  限制Annotaion能修饰类中的那些元素 (@Target(ElementType.ANNOTATION_TYPE))

    @Target(ElementType.FIELD)
    public @interface MyTag{
      自定义体  ...
    }
    • ANNOTATION_TYPE : 只能用来修饰Annotaion
    • FIELD : 修饰成员变量
    • CONSTRUCTOR : 只能用来修饰构造器
    • METHOD : 只能用来修饰方法
    • LOCAL_VARIABLE : 只能用来修饰局部变量
    • PACKAGE : 只能用来修饰包
    • PARAMETER : 只能用来修饰参数
    • TYPE : 只能用来修饰类、接口(包括注解类型)或枚举定义 相当于类的任何元素

     @Documented : 指定Annotaion是否能包含到javadoc生成的文档中。

     @Inherited : 指定Annotaion具有继承性,父类定义了这个注解,那么子类也会继承这个注解。

     @Repeatable : 可重复注解,表明标识该注解可以多次使用相同的声明或类型使用。

     4.自定义注解

    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Test {
       String description() default "描述";
    }
      
  • 相关阅读:
    2018年左其盛读过评过的书(持续更新中)
    2星|《用场景营销引爆你的生意》:总共4个推荐案例,3个已经失败
    2018左其盛经管新书差评榜(持续更新中)
    3星|《十大全球CEO亲授企业高速成长的关键战略》:作为CEO,我也非常坦率地表明过家庭优先于工作
    2018左其盛好书榜(持续更新中)
    3星|《你的品牌需要一个讲故事的人》:有理论没案例
    《思考快与慢》前传,两位天才犹太心理学家的传奇人生与学术故事:4星|《思维的发现》
    C#如何在派生类中不显示父类的一些属性以及TypeDescriptor使用
    在XML里的XSD和DTD以及standalone的使用
    数据库操作之简单带参操作
  • 原文地址:https://www.cnblogs.com/not-miss/p/10645008.html
Copyright © 2011-2022 走看看