注释=评论?

时间:2010-01-10 12:24:27

标签: java annotations

它们是否通过注释表示带有//或/ * * /?

的代码中的注释

8 个答案:

答案 0 :(得分:13)

不,注释不是评论。使用语法@Annotation将注释添加到字段,类或方法。其中一个最着名的注释是@Override,用于表示方法是从超类中覆盖一个方法。例如:

public class MyClass {
  @Override
  public boolean equals(Object other) {
    //...
  }
}

有关详细信息,请参阅http://download.oracle.com/javase/1,5.0/docs/guide/language/annotations.html

答案 1 :(得分:6)

不,注释采用以下形式:

@Annotation(property="A")
public class {
   @Annotation(property="B")
   Object field;

   @Annotation(property="C")
   public void method() {
   }
}

注释可以放在类,方法或字段上。他们可以在运行时通过反射或编译时通过apt(注释处理工具的简称,而不是apt包管理器)提供信息。

它们被定义为:

@interface Annotation {
    String property();
}

有关详情,请参阅http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html

答案 2 :(得分:4)

没有。

annotation是java 1.5引入的特殊构造。注释会向java类,方法或变量添加一些元信息。可以在编译时(例如,使用apt生成一些额外的代码)或在运行时(例如,将类与数据库表匹配)来评估此元信息。

内置注释的示例:

@Deprecated // this is an annotation
public void myMethod() {
    ...
}

答案 3 :(得分:3)

实际上,在Java5(即1.3或1.4)之前,评论(///* */)是添加注释(即“metadata”)的唯一方法。

一个典型示例是,如果您使用TestNg,则单元测试框架TestNg with Java 1.4建议将其所有Java5 @Annotations作为注释。 但这意味着,要让Testng启动正确的测试套件,它必须访问程序的 sources ,而不仅仅是编译后的二进制文件。

  

Javadoc标记不同,Java注释可以是reflective,因为它们可以嵌入到编译器生成的class files中,并且可以由Java VM保留,以便在{{}}处进行检索。 {3}}

答案 4 :(得分:0)

注释不仅适用于java,它们也存在于c ++中,它们与java中的注释类似。

// MyCode.h
# include <CodeAnalysis/SourceAnnotations.h>
using namespace vc_attributes;
class CMyClass
{
public:
       void f ( [Pre ( Valid = Yes )] int *pWidth );
// code ...
};

// MyCode.cpp
#include "MyCode.h"
void CMyClass::f ( [Pre (Valid = Yes)] int pWidth )
{
}

您可以查看MSDN以获取更多信息: http://msdn.microsoft.com/en-us/library/ms182036(VS.80).aspx

答案 5 :(得分:0)

注释不是注释,但它用于许多目的,例如错误调试,它也是编译器的指令集,但它对运行时代码没有任何影响。

@ override,@ deprecated和其他是注释的示例。它可以与方法,构造函数,参数,变量一起使用。

答案 6 :(得分:0)

注释用于向编译器提供详细信息,而注释是为了方便程序员,以便他知道代码的结构。

答案 7 :(得分:0)

当然不是,但是我认为注释≈评论。

它们的核心是描述,但是注释具有更多的局限性,您不容易犯错,而且在编译时也会发现错误。