Java 注释=注释?

Java 注释=注释?,java,annotations,Java,Annotations,注释是指代码中带有//或/**/的注释吗?不,注释不是注释。注释使用语法@annotation添加到字段、类或方法中。最著名的注释之一是@Override,用于表示方法正在重写超类中的方法。例如: public class MyClass { @Override public boolean equals(Object other) { //... } } 有关更多信息,请参阅。否 是Java1.5引入的一种特殊构造。注释向java类、方法或变量添加一些元信息。此元信息可以

注释是指代码中带有//或/**/的注释吗?

不,注释不是注释。注释使用语法@annotation添加到字段、类或方法中。最著名的注释之一是@Override,用于表示方法正在重写超类中的方法。例如:

public class MyClass {
  @Override
  public boolean equals(Object other) {
    //...
  }
}
有关更多信息,请参阅。

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

内置注释的示例:

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

否,注释采用以下形式:

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

   @Annotation(property="C")
   public void method() {
   }
}
注释可以放在类、方法或字段上。它们可以通过反射在运行时提供信息,也可以通过apt(注释处理工具的缩写,而不是apt包管理器)在编译时提供信息

它们的定义如下:

@interface Annotation {
    String property();
}
请参阅以了解更多信息实际上,在Java5(即1.3或1.4)之前,注释(
/
/**/
)是添加注释(即“”)的唯一方法

一个典型的例子是,如果您正在使用,单元测试框架将其所有Java5
@注释作为注释提出。
但这意味着,为了让Testng启动适当的测试套件,它必须访问程序的源代码,而不仅仅是编译后的二进制代码

与标记不同的是,Java注释可以嵌入到由编译器生成的中,并且可以由Java VM保留,以便随时可以检索


注释不仅仅是java,它们也存在C++中,它们与java类似。p>

// 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 )
{
}
//MyCode.h
#包括
使用名称空间vc_属性;
类CMyClass
{
公众:
无效f([Pre(Valid=Yes)]整数*宽度;
//代码。。。
};
//MyCode.cpp
#包括“MyCode.h”
void CMyClass::f([Pre(Valid=Yes)]int pWidth)
{
}
您可以查看MSDN以了解更多信息:

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


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

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

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


它们的核心是描述,但是注释有更多的限制,你不容易犯错误,而且,你可能会在编译时发现错误。

这篇文章非常混乱……与其描述它是什么,不如深入研究所有这些语法,而不真正解释你做了什么,它有什么好处……必须找到另一篇好文章,其中引用了所有注释,以及何时和为什么使用它们。那么在一个源文件(.java)中定义一个注释?然后在类中使用它?参见JUnit框架中使用注释的API与不在同一个包中的API的示例。