瞭解java註解,java註解

來源:互聯網
上載者:User

瞭解java註解,java註解

類似於下面這樣的就是註解

註解可以在類上,成員變數上,方法上等

假如有2個註解是這樣的:(其中的Author和Date)

那麼這2個註解的定義就是這樣的:

Author註解:

Date註解:

可以看到註解的定義和介面的定義比較類似,而Author註解中有name屬性,所以使用Author的時候比較要填寫name屬性值

如果想要註解有預設值,可以這樣:

這樣使用Author註解時age屬性值就可以不用填寫,一個註解有多個屬性值時使用時用逗號隔開

 

如果註解中只定義了1個屬性且名稱為value,那麼使用時名稱可省略,像這樣:

註解也是一種類型,既然可以定義,那麼也是可以擷取的,像這樣:

運行你會發現是會報錯的,難道是代碼錯了,其實並不是,是註解的保留原則沒有更改

再就要談到元註解了,元註解就是註解類型上的註解,先看一下註解@Override的元註解

其中@Target和@Retention就是元註解,其中@Target表示註解的應用範圍,@Retention表示註解的保留原則

這兩個註解可以根據java.lang.annotation介面去查閱

java.lang.annotation.RetentionPolicy

所以只需要將@Retention的值設定為RUNTIME就可以讀取註解了,它的預設值是CLASS

 

java.lang.annotation.ElementType

@Target的預設值應該是這所有的(這個我沒有嘗試啊)

 

看到這裡就應該知道怎麼解決剛才報錯的問題了

只需要在自訂註解上加上元註解@Retention就行了,當然,也可以設定一下註解@Target,就像這樣:

  Author註解:

  Date註解:

再運行就可以得到結果了

 

還有剛才提到的關於註解的繼承,也是使用元註解:@Inherited

註解預設不繼承,不過這繼承也是有限制的

@Inherited   //表示註解是否能繼承, 只能作用在類上, 只對類的繼承有效, 對實現介面無效

 

註解可能用到的地方不多,不過瞭解註解可以讓我們更理解一些東西。比較springmvc中的註解等

 



 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.