zoukankan      html  css  js  c++  java
  • Java注解基础

    0.背景

       Java注解--Annotation产生于JDK5。作为code的特殊“标记”,注解可以在编译、类加载、运行时被读取,并执行处理。

       开发利用注解在源码中嵌入补充信息,工具(代码分析、开发、部署工具等)通过这些信息验证、处理或部署。

    1.定义Annotation

      使用关键字 @interface,与定义接口类似,如:

    1 public @interface Test{  
    2 }  

     使用注解,单独一行,如:

    1 @Test  
    2 public class MyClass{  
    3 ....  
    4 }  

    1.1 成员变量

     注解只有成员变量,没有方法。成员变量以“无形参方法”形式定义,如下 name、age是变量名,其类型分别是String,int

    1 public @interface MyTag{  
    2     string name();  
    3     int age();  
    4 }  

    如果定义变量,在使用时必须赋值,也可以定义时指定默认值。

    1 public @interface MyTag{  
    2     string name() default "我兰";  
    3     int age() default 18;  
    4 }

    根据是否包含成员变量,注解分为  标记 和 元数据 两类。标记元Annotation 仅仅用自身存在提供信息,如@override;元数据Annotation 可以携带更多数据。

    1.2 元注解

        元注解(JDK提供),可以修饰注解定义。JDK提供4个元注解,此处不详细介绍,如下:

       @Retention

       @Target

       @Documented

       @Inherited

    1.3 基本注解

        JDK提供如下基本注解:

        @Override 

       限定重写父类方法。子类中被@Override 修饰的方法,如果存在对应的被重写的父类方法,则正确;如果不存在,则报错;

       @Deprecated

       表示某个程序元素(类、方法等)已过时。

       @SuppressWarning

       抑制编译器警告。例如 @SuppressWarning(value="unchecked")

      @SafeVarargs

      JDK 7 专门为抑制“堆污染”警告提供的。

      

  • 相关阅读:
    0.Mysql优化框架
    [C]extern char **environ
    [C]Armstrong Number
    [C]struct, union的结合
    [C]enum类型
    [C]fibonacci series, recursion, time.h
    [C/JAVA]二维数组
    [C] char**, swich-case, refactoring, stdbool.h
    hardly/scarcely ... goes by without ...
    [C]随机数生成
  • 原文地址:https://www.cnblogs.com/albertarmstrong/p/8945932.html
Copyright © 2011-2022 走看看