2010-04-02 14 views
2

什麼是註記類。它在java/android中有什麼用處。在Java意義上和iPhone SDK意義上的「註釋」之間有什麼區別?

在iphone註釋用於在地圖上放置圖釘..

Java有java.lang.annotation程序包中......有什麼用呢?我可以有一個例子,教程,示例代碼等?

+0

看到這個問題「如何和在java中使用註釋在哪裏」http:// stackoverflow。com/questions/1372876/how-and-where-annotations-used-in-java – ewernli 2010-04-02 14:03:26

回答

11

這兩個概念是不相關的:

  • 在iPhone SDK中,註釋是一種值得注意的,你可以把在地圖上。
  • 在Java(和Android SDK)中,annotations是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或採取其他有用的措施。

+0

「你可以放在地圖上的那種記錄」我怎麼能在android中做到這一點? – Praveen 2010-04-02 13:36:55

+1

就像我說的,他們完全不相關的概念。在Android中,您需要使用Overlay來將東西放在地圖上。看看這個教程:http://developer.android.com/resources/tutorials/views/hello-mapview.html – 2010-04-02 13:39:26

+0

是的,但覆蓋看起來不像iPhone的註釋。這是iPhone的引腳下降與精美的動畫。但我只能顯示引腳圖像。它看起來不太好。 – Praveen 2010-04-02 13:48:13

1

Java中的annotaions確實是相當強大的概念。由於annotaion可以通過反射API進行反思,因此在做不同的工作時非常方便。我認爲這個很好又簡單的例子是一個JAXB API。它允許您編寫/讀取正在使用POJO的XML文件。不需要手動編組/解組XML樹。所有你只需要「標記」你想要包含在帶註釋的xml中的感興趣變量。所以它表示這個變量包含元數據,它允許JAXB API找出你感興趣的變量,並將它們的值寫入/讀出XML文件。

不要幻想,註釋只是扮演一些「裝飾」角色,如持有作者或版本信息左右。他們更強大...

相關問題