一邊唸叨標記接口我偶然發現了以下站點:Item 37: Use marker interfaces to define types
這裏,根據約書亞·布洛克有過的標記註釋標記接口兩個優點。標記註釋VS標記接口
標誌接口定義由的 標記類實例中實現的類型;標記註釋不。這個 類型的存在允許您在編譯時發現錯誤,如果您使用了標記註釋,那麼您將無法捕獲到運行時間爲 。
標記界面超過標記註釋的另一個優勢是 它們可以更精確地定位。如果註釋類型爲 ,並且目標爲
ElementType.TYPE
,則它可以應用於任何 類或接口。假設您有一個標記僅適用於特定界面的實現 。如果您將它定義爲標記界面,則可以將其擴展到適用的唯一界面 ,以確保所有標記的類型也是其適用的唯一界面的子類型 。
OK,第一點是理解,但我不知道如果我理解正確的第二點:
如果註釋類型與目標
ElementType.TYPE
宣佈,它可以應用到任何類或接口。
同樣,如果我有標記接口,那麼也可以應用於任何類或接口。它不是說關於標記註釋和標記接口的事情嗎? 標記界面如何更準確地瞄準?
的第二點還提到:
可以有[標記接口]延伸的唯一接口,它是適用的,保證所有標記類型也是唯一的接口的亞型,其它是適用的。
你能不能也說明實現這一目標,通過使用@Inherited
元註釋?
我編輯了這個問題,使它更容易理解。如果我改變太多,你當然可以改變它。 – Kapep 2016-02-04 19:28:31