Java意义上的“注释”和iPhone SDK意义上的“注释”之间有什么区别?

时间:2010-04-02 13:21:45

标签: java android annotations

什么是注释类。它在java / android中有什么用处。

在iphone中,Annotation用于在地图上放置一个图钉..

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

2 个答案:

答案 0 :(得分: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或采取一些措施其他有用的行动。

答案 1 :(得分:1)

Java中的注释实际上是非常强大的概念。由于可以使用reflectioon API对注释进行反思,因此在执行不同的工作时非常方便。我认为好的和简单的例子是JAXB API。它允许您编写/读取仅与POJO一起使用的XML文件。不需要手动编组/解组XML树。您只需要“标记”您希望包含在带注释的xml中的感兴趣变量。所以它说这个变量包含元数据,允许JAXB API找出你感兴趣的变量,并在XML文件中写入/读取它们的值。

不要幻想破解注释只是扮演一些“装饰”角色,比如持有作者或版本信息等。它们更强大......