黑馬程式員-java的註解

來源:互聯網
上載者:User

---------------------- android培訓、java培訓、期待與您交流! ----------------------

今天學習了Annotation註解,就把自己的理解寫下來,大家一起學習。
首先是java的四個元註解,所謂的元註解就是註解的註解,也就是用來註解註解的(有點亂),他們分別是

1.@Target,表示註解用於什麼地方,有八個參數,分別是:

ElementType.ANNOTATION_TYPE(注釋型別宣告)

ElementType.CONSTRUCTOR(構造方法聲明)

ElementType.FIELD(欄位聲明)

ElementType.LOCAL_VARIABLE(局部變數聲明)

ElementType.METHOD(方法聲明)

ElementType.PACKAGE(包聲明)

ElementType.PARAMETER(參數聲明)

ElementType.TYPE(類,介面或枚舉聲明)

2.@Retension,表示該註解資訊儲存在那裡,有三個參數,分別是:

RetentionPolicy.CLASS(註解資訊記錄在類中,運行是被丟棄,是預設的)

RetentionPolicy.RUNTIME(註解資訊記錄在運行期,也就是運行是保留下來)

RetentionPolicy.SOURCE(註解資訊記錄在源檔案,編譯成類檔案就會被丟棄)

3. @Documented 將此註解包含在 javadoc 中

4. @Inherited 允許子類繼承父類中的註解

 

Java中有三個預設的註解也要提一下,分別是

1.@Override,用來告訴編譯器下面這個方法是重寫父類的方法

2.@ Deprecated,用來告訴編譯器這是一個過時的API,讓編譯器發出警告

3.@SuppressWarnings,用來告訴編譯器不用管警告的資訊,關閉警告資訊

 

下面,我們來編寫自訂的註解:

import java.lang.annotation.*;@Target(ElementType.METHOD)  @Retention(RetentionPolicy.RUNTIME)   public @interface A{      String ID();    String Color() default  "yellow";//這個使用了預設值,在不設定的情況下時使用預設的。}

再編寫一個類使用註解

public class B {@A(ID="110")//這個註解必須是方法,因為上面元註解是@Target(ElementType.METHOD)public void a(){}@A(ID="120",Color="red")//並且在運行期間都存在public void b(){}}

上面就是自訂註解的使用,下面示範通過反射解析註解

public class C {public static void main(String[] args) {B b = new B();Method[] ms = b.getClass().getDeclaredMethods();for(Method m:ms){if(m.isAnnotationPresent(A.class)){A a = m.getAnnotation(A.class);System.out.println(m.getName()+":"+a.ID()+":"+a.Color());}}}}

結果是
a:110:yellow
b:120:red

現在對註解有了初步的瞭解,那麼,為什麼要使用註解呢,引用下面的例子

public class D extends B{//@Overridepublic void A(){System.out.println("hello");}}

上面的例子本來我是想重寫a()函數的,但是不小心寫成了大寫A(),如果有@Override,編譯器將產生錯誤,如果注釋掉,那麼編譯器將以為我是在寫一個新的函數,所以不報錯,結論:註解簡單來說就是注釋給機器看的,讓機器來告訴我們無意間的錯誤。

 

---------------------- android培訓、java培訓、期待與您交流! ----------------------
詳細請查看:edu.csdn.net/heima

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.