2四、Java的註解

註解:說明程序的。給計算機看java

註釋:用文字描述程序,給程序員看的程序員

定義:註解,也叫元數據,一種代碼級別的說明。他是JDK1.5及以後版本引入的一個特徵,與類、接口、枚舉是在同一層次,他能夠聲明在包、類數組

、字段、方法、局部變量、方法參數等的前面,用來對這些元素進行說明,註釋ide

做用分類:一、編寫文檔,經過代碼裏面標識的註解生產文檔.net

               二、代碼分析,經過代碼裏面標識的註解對代碼進行分析繼承

               三、編譯檢查,經過代碼裏標識的註解讓編譯器可以實現基本的編譯檢查接口

 

JDK中預約義的一些註解:文檔

@Override,檢測被該註釋標註的方法是不是繼承父類(接口)的get

@Deprecated,該註釋標註的內容,表示已過期編譯器

@SuppressWarnings,壓制警告

 

自定義註解:

格式:一、元註解:用於描述註解的註解

         二、public @interface 註解名稱{

                    屬性;

}

本質:public interface 註解名稱 extends java.lang.annotation.Annotation{}

         就是一個接口,該接口默認繼承Annotation接口

屬性:接口中的抽象方法

         要求:一、屬性的返回值類型必須爲基本數據類型,String,枚舉,註解,以上類型的數組

                  二、定義了屬性在使用時要給屬性賦值。

                       若是定義屬性時使用default關鍵字給屬性默認初始化值,則使用註解時,能夠不進行屬性的賦值

                       若是隻有一個屬性須要賦值,而且屬性的名稱是value,則value能夠省略,直接定義值便可

 

元註解:

一、@Target:描述註解可以做用的位置

        ElementType取值:一、TYPE:能夠做用於類上

                                   二、METHOD:能夠做用於方法上

                                   三、FIELD:能夠做用於成員變量上

二、@Retention:描述註解被保留的階段

          RetentionPolicy取值:RUNTIME:當前被描述的註解,會保留到class字節碼文件中,並被JVM讀取到

三、@Documented:描述註解是否被抽取到API文檔中

四、@Inherited:描述註解是否被子類繼承

 

在程序中使用註解:

@Target(ElementType.TYPE)
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @ interface MyAnno {
    String value();
}
public class Demo {

    public static void main(String[] args) throws Exception{

        Class personClass = Person.class;
        MyAnno anno = (MyAnno) personClass.getAnnotation(MyAnno.class);
        System.out.println(anno.value());
    }

}
相關文章
相關標籤/搜索