[英]What's the difference between “annotation” in the Java sense and in the iPhone SDK sense?
什么是注釋類。 它在java / android中有什么用處。
在iphone中,Annotation用於在地圖上放置一個圖釘..
java有java.lang.Annotation包...有什么用呢? 我可以有示例,教程,示例代碼等嗎?
這兩個概念是無關的:
在Java世界中,注釋是附加到一段代碼的編譯時標記。 他們將元數據添加到代碼片段中,然后工具或第三方(甚至您自己的代碼)可以使用。 但它們通常不會影響代碼的運行方式; 也就是說,如果刪除了注釋,那段代碼通常不應該有任何不同的行為。
一個簡單的例子是用版權聲明標記一段代碼。 這是我們可能用於此的注釋:
public @interface Copyright {
String value();
}
以下是我們將元數據附加到代碼的方式:
@Copyright(value = "2010, United States National Security Administration")
public class QuantumCryptographyDecoder { ... }
如果只有一個名為value
注釋屬性,則可以省略value =
說明符作為快捷方式:
@Copyright("2010, United States National Security Administration")
public class QuantumCryptographyDecoder { ... }
否則你必須指定它:
@Created(year = 2010)
public class ShinyNewClass { ... }
如果我們刪除了@Copyright
批注,那么QuantumCryptographyDecoder
仍然可以像以前一樣工作。 不會附加任何Copyright
元數據。 但是第三方工具進行了某種驗證(例如,要求所有名為“Quantum”的類都附有@Copyright
通知)可以提醒您缺少@Copyright
或采取其他一些有用的操作。
Java中的注釋實際上是非常強大的概念。 由於可以使用reflectioon API對注釋進行反思,因此在執行不同的工作時非常方便。 我認為好的和簡單的例子是JAXB API。 它允許您編寫/讀取僅與POJO一起使用的XML文件。 不需要手動編組/解組XML樹。 您只需要“標記”您希望包含在帶注釋的xml中的感興趣變量。 所以它說這個變量包含元數據,允許JAXB API找出你感興趣的變量,並在XML文件中寫入/讀取它們的值。
不要幻想破解注釋只是扮演一些“裝飾”角色,如持有作者或版本信息等。 他們更強大......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.