程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2SE >> 在Eclipse 3.1中體驗J2SE 5.0的新特性 第二部分 :注釋類型(4)

在Eclipse 3.1中體驗J2SE 5.0的新特性 第二部分 :注釋類型(4)

編輯:J2SE

2.2.3 注釋的注釋
 
值得注意的是,J2SE5.0還提供了四種用於注釋的注釋類型。有以下的四種:
 
1. Target:用來指定這個注釋(Annotation)是為哪種類型而定義的。比如,這個類 型可能只是為method定義的。比如override,不能用@override來修飾class或者fIEld。
 
比如清單11中定義了一個注釋:TODO,而這個注釋定義了Target為 ElementType.method。因此,TODO只能用來修飾方法,不能用來修飾類或者類變量。圖5 中給出了一個非法使用TODO的例子。在MyCalculator中,定義了一個布爾型的變量 isReady,如果用TODO來修飾這個類變量的話,會出現編譯錯誤。而用TODO來修飾方法 calculateRate(),則不會出現編譯錯誤。這是因為TODO的定義已經規定了,只能用來修 飾方法。
 
清單11 Target的用法
 
@Target({ElementType.METHOD})
 public @interface TODO {
    int priority() default 0;
 }
 
圖5 TODO注釋的非法使用
 


2.Retention:Retention的策略可以從以下三種中選取:
 
RetentionPolicy.SOURCE:編譯器編譯之後會會從class file中除去注釋 (Annotation)。
 
Retention.CLASS:注釋(Annotation)保留在class file中,但是VM不會處理。
 
RetentionPolicy.RUNTIME,:注釋(Annotation)保留在class file,VM會進行處理。
 
請注意,如果你希望在運行時查找到這些注釋在什麼地方被用到,一定要在定義注釋 的時候,選擇RetentionPolicy.RUNTIME,否則即使你用注釋修飾了類變量或者方法,在運 行時也沒有辦法獲得這個信息的。
 
3.Documented:這個注釋(Annotation)將作為public API的一部分。
 
4.Inherited : 假設注釋(Annotation)定義的時候使用了Inherited,那麼如果這個 注釋(Annotation)修飾某個class,這個類的子類也被這個注釋(Annotation)所修飾 。
 
2.3注釋的應用
 
下面各小節顯示了在哪些情況下可以使用注釋以及如何使用注釋。

 

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