我明白課堂註釋的目的,這要歸功於How and where are Annotations used in Java?。包裝註釋的目的是什麼,如in this blog post和§7.4.1 of the Java Language Specification所述?包註釋有什麼意義?
爲什麼要將元數據與包關聯?你可以做什麼樣的事情?
我明白課堂註釋的目的,這要歸功於How and where are Annotations used in Java?。包裝註釋的目的是什麼,如in this blog post和§7.4.1 of the Java Language Specification所述?包註釋有什麼意義?
爲什麼要將元數據與包關聯?你可以做什麼樣的事情?
我認爲@Deprecated
會有道理。如果整個軟件包是由非Java源代碼的某個工具生成的,可能類似@Generated
。如果這個軟件包不是公共API的一部分,或者@Internal
。
也許OSGi工具(你需要聲明你的包的版本以及你依賴的包)也可以使用它。
有沒有人見過野外的人?我能想到的
兩個原因:
這不是真正的目的,但我使用它們作爲避免重新編譯package-info.java文件的解決方法。
問題是javac
(和Ant任務<javac>
)沒有爲package-info.java創建類文件,如果只有文檔(它們存在的原因)和package bla;
語句,並且ant任務重新編譯每個文件沒有(或更舊)對應的文件。
在那裏添加虛擬註釋(如SuppressWarnings
)會產生package-info.class
,因此文件不會重新編譯,直到再次更改爲止。
(螞蟻1.8.0解決了這個通過創建一個空包info.class,即使沒有標註,但我使用的是舊ant
這裏。)
JAXB例如允許most annotations是通常用於某種類型,同樣適用於包裝。這種情況下的含義是指定該包中所有類的默認值。
例如,如果你想在一個包中的所有類,都通過getter/setter方法暴露的所有屬性,在XML映射你可以在每個類指定@XmlAccessorType(XMLAccessType.PROPERTY)
或簡單地指定它在包裝上。
測試元數據 - 即測試包(元件測試或其他)的元數據。您可以在程序包級別設置適當的各種測試元數據,例如:特性,所有者,版本,錯誤/問題等。可以在類或方法級別對這些元素進行優化,但可以使用程序包級定義或缺省值爲簡潔起見可能會很方便。我已經利用了這種方法的一個變體(在註釋的好處之前)。
類似的觀點可以爲大約在同一各種各樣的事情廣義碼元進行:功能,所有權,缺陷,歷史信息等
你是說註釋包相當於註釋內的所有課程一攬子包裝? – Gili 2010-01-20 14:41:36
不,我的意思是你可以用它來表示該包中的整個類應該編織。 – 2010-01-20 15:05:00
與我寫的有什麼不同? – Gili 2010-02-04 16:52:14