黑马程序员_注解

来源:互联网 发布:覆盖索引 mysql 编辑:程序博客网 时间:2024/05/17 02:37

------- 物联云培训java培训、期待与您交流! ---------- 

 

1.概述:注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记
    
标记可以加在包、类、字段、方法、方法参数,以及局部变量上等等。
       格式:@注解类名()。如果有属性,则在括号中加上属性名(可省略)和属性值。
   2.java中三种最基本的注解:
    @SuppressWarning(”deprecation”)--->用于提示编译时的警告 源程序
     @Deprecated--->是用于提示方法已过时 运行时

假定之前的某个类升级了,其中的某个方法已经过时了,不能够将过时的方法删除,

@Override--->提示覆盖父类方法  源程序看的

可对自己类中的方法判断是否是正确的覆盖了父类的方法
3.
注释的应用
   1、定义格式:@interface 名称{statement}
   2、判断一个类中是否加注解了:用这个isAnnotationPresent();方法

例如:AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)

        3、注解的生命周期:Java源文件àclass文件-à内存中的字节码

4、获得这个注解:用getAnnotation()这个方法

       例如:ItcastAnnotationannotation =(ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);

5、定义一个注解:

 @Retention(RetentionPolicy.RUNTIME)//表示让它在运行阶段有           @Target(ElementType.METHOD,ElementType.TYPE)//表示把这个注解写到方法上,如果你想要在类上也可以,就写上ElementType.TYPEpublic@interface ItcastAnnotation {    String color();               String value();int[]ArrayAttr();//数组类型的EnumTest.TrafficLampLamp();defaultEnumTest.TrafficLamp.RDE//定义枚举类型的MetaAnnotationannotationAttr()default @MetaAnnotation("gdgfd");               //定义一个注解类型的}//定义了一个注解public @interface MetaAnnotation {Stringvalue();}

注意:定义注解内的属性的类型只能是八大基本数据类型、String、Class、枚举、注解、及其相对应的数组。

6、在我的程序中应用我自己定义好的注解

           例如:

    @ItcastAnnotation(color=”red”,value=”dsf”,ArrayAttr={1,3,4},annotationAttr=@MetaAnnotation("fdvgd"))//设置属性值publicclass AnnotationTest {publicstatic void main(String[] args)                { }}

注意:如果只有一个vablue属性需要设置,可以省略value。例如:@ItcastAnnotation(“dsf”);

如果你想要省略value,可以把color设置成default。例如:

String color();default “red”;

如果数组只有一个值,可以把大括号省略。

7.对应用的类进行反射操作的类:

           这里把这个类放在了上面的类中了

8.元注解:注解的注解

9.为注解增加属性:

          注解相当于胸牌,属性实际上就是在胸牌上添加一些属性,比如说添加个颜色。

总结:注解就是给相应的类、成员函数、成员变量、局部变量等添加标记。注解的作用就是检验编码中的错误。

 

------- 物联云培训java培训、期待与您交流! ----------  

0 0
原创粉丝点击