簡體   English   中英

Java意義上的“注釋”和iPhone SDK意義上的“注釋”之間有什么區別?

[英]What's the difference between “annotation” in the Java sense and in the iPhone SDK sense?

什么是注釋類。 它在java / android中有什么用處。

在iphone中,Annotation用於在地圖上放置一個圖釘..

java有java.lang.Annotation包...有什么用呢? 我可以有示例,教程,示例代碼等嗎?

這兩個概念是無關的:

  • 在iPhone SDK中,注釋是一種可以放在地圖上的注釋。
  • 在Java(和Android SDK)中, 注釋是Java語言的一個特性,用於向類添加特定類型的元數據。

在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM