程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 了解java注解,java注解

了解java注解,java注解

編輯:JAVA綜合教程

了解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中的注解等

 



 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved