CodeGym /Java Blog /Toto sisi /註釋。第 1 部分 — 有點無聊
John Squirrels
等級 41
San Francisco

註釋。第 1 部分 — 有點無聊

在 Toto sisi 群組發布
第 1 部分。我已經非常簡要地介紹了 SOURCE 和 CLASS 類型的註釋。這篇值得一讀,免得在第二部分迷路,擴大你的“誤解”一點=)我保證你至少會知道一個詞! 註釋。 第 1 部分 — 有點無聊 - 1 我第一次在這裡的任務中看到註釋時,我並沒有太在意它們。到處都是@Override,但 IDEA 添加了它,所以我認為它必須是那樣的。隨著時間的推移,我意識到一切都更加深刻。在您學習的過程中,註釋可能看起來有些無用,但卻是必要的。你不知道它們為什麼存在或它們做什麼。您已經閱讀了幾篇文章,它們說:“我們現在有了註釋真是太好了,一切都變得如此簡單。” 但我不知道以前是怎樣的,也不明白現在的事情容易多了。現在我確實知道並想分享一點。 有 3 種類型的 (RetentionPolicy) 註解:
  • SOURCE - 編譯器的註解
  • CLASS——註釋中的信息將以字節碼形式寫入,但在運行時不可用。他們說標準庫有很多這種類型的註解,現在為了向後兼容保留了下來。這用於非常具體的任務。
  • StackOverflow 上的問答
  • RUNTIME——這些註釋是最受歡迎的。它們在代碼執行時使用。
介紹佔了文章的一部分,所以這裡寫一下SOURCE和CLASS註解。這些是我能找到的註釋(感謝 Task 3607)。我不會討論運行時註釋——它們太多了,它們不是本文的主題。 來源:
  • java/lang/annotation/Native.class;
  • java/lang/SuppressWarnings.class
  • javax/註解/Generated.class
  • java/lang/Override.class
班級: 我不知道為什麼需要 CLASS 註釋。現有註釋的文檔無處可尋,所以我認為您可以將這個包袱留在後面。但如果你找到了,請分享。源註釋:
  1. Native——帶有這個註解的變量可以引用本地代碼;
  2. SuppressWarnings——這個註釋抑制了各種編譯器警告;
  3. 已生成——此註釋標記已生成的源代碼;
  4. 覆蓋——這個註解檢查方法覆蓋。
了解更多信息:

@本國的

Native——我從未見過也從未使用過。我認為這是一個相當罕見的註釋,因為當您需要以另一種“本機”語言運行代碼時會用到它。我試過但沒有找到明確的提及。

@SuppressWarnings

SuppressWarnings — 此註解通常像這樣使用:@SuppressWarnings("unchecked")。它用於抑制您已經知道的警告。前面的示例禁止顯示有關未經檢查的類型轉換的警告。同樣,這是我遇到的唯一用法。

@生成

已生成——由於我必須從 XSD 文件生成類的任務,我現在遇到了這個註釋。這 3 個註釋非常具體,目前您很可能不感興趣。我將描述最後一個。

@覆蓋

覆蓋——你經常使用它,它做了一些非常有用的事情。重寫方法時,沒有IDEA的幫助很容易出錯。無論是拼寫錯誤還是簡單的錯誤,錯誤都會發生。該註釋將確保父類中的方法與我們的(註釋的)方法相匹配。這確保該方法將被覆蓋而不是添加。重構代碼時,可能會刪除或更改父方法。同樣,此註釋將指示錯誤。沒有它,我們的方法將被簡單地添加。 無聊的?我會說是的。從這篇文章中收集到的幫助不大。這裡幾乎所有內容 (90%) 都描述了您永遠不會使用或很少使用的東西。剩下的 10% 是在跟@Override 註解打招呼和描述,乍一看沒什麼用。也就是說,我認為文章的第二部分會更有趣。將討論運行時註釋——它們在執行期間與代碼交互並施展黑魔法。 註釋。第 2 部分。龍目島
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION