2012-06-04 64 views
0

可能重複:
What function do these Java annotations serve?
How and where are Annotations used in Java?註釋是做什麼的?我該如何使用它?

嗯,我想弄清楚,是什麼註釋,閱讀大量的文檔,但還是不明白他們在做什麼以及如何使用它... 那麼我有這個樣品註釋說明:

@Documented 
@interface ClassPreamble { 
    String author(); 
    int currentRevision() default 1; 
    String lastModified() default "N/A"; 
    String lastModifiedBy() default "N/A"; 
} 

然後我試圖使用它,但我甚至不知道會發生什麼,笑:

@ClassPreamble (author = "James") 
public class PreAmbleReal { 
    static public void main(String[] args) { 




    } 

    public String author(); 

} 

所以,任何人都可以給我講解一下?否則,我會浪費幾個小時的時間,一無所獲。 :/

回答

1

註釋本身不做任何事情。它們是放在其他一些代碼結構(如方法,類,參數,...)上的一些屬性。必須有其他處理器才能讀取註釋並執行某些操作。

一些註釋只是在源代碼中,並沒有放在編譯代碼中,所以處理源代碼的工具讀取它們並處理它們,一些註釋被放入編譯代碼中,但不會被類加載器加載,以及有些被放在編譯後的代碼中,並且被類加載器加載,所以它們可以在運行時被讀取(這3個行爲在註釋本身上通過@Retention註釋加以區分)。

據我所知,在Java語言規範中提到缺少運行時註解類不應該停止應用程序的工作,它意味着類加載器只是忽略它們。但可能是處理器或使用它們的框架出錯(這是他們應該做的)。

1

註釋的用途之一是它告訴編譯器檢查特定的事情。例如,@Override將確保函數實際上與基類相同。還有一些其他的註釋,比如@Author。我確信你已經到過這個頁面,但是這是一個更詳細的解釋 - http://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html

+0

是的,我已經閱讀過,但沒有多大幫助。 –

+0

@ArturasM - 也許你應該問一個問題,要求解釋你不明白的教程中的點... –

相關問題