аннотация = комментарий? - PullRequest
       15

аннотация = комментарий?

5 голосов
/ 10 января 2010

означают ли они под аннотацией комментарий в коде с // или / * * /?

Ответы [ 7 ]

13 голосов
/ 10 января 2010

Нет, аннотация не является комментарием. Аннотация добавляется в поле, класс или метод с использованием синтаксиса @Annotation. Одна из самых известных аннотаций - @Override, используемая для указания на то, что метод переопределяет один из суперкласса. Например:

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

Подробнее см. http://download.oracle.com/javase/1,5.0/docs/guide/language/annotations.html.

6 голосов
/ 10 января 2010

Нет, аннотации принимают форму:

@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 для более

4 голосов
/ 10 января 2010

Нет.

аннотация - это специальная конструкция, представленная в Java 1.5. Аннотация добавляет метаинформацию к классу, методу или переменной java. Эта метаинформация может оцениваться во время компиляции (например, для генерации дополнительного кода с apt ) или во время выполнения (например, для сопоставления класса с таблицей базы данных).

Пример встроенной аннотации:

@Deprecated // this is an annotation
public void myMethod() {
    ...
}
3 голосов
/ 10 января 2010

На самом деле, до Java5 (т. Е. 1.3 или 1.4) комментарии (// или /* */) были единственным способом добавления аннотации (т. Е. « метаданные ») для обработки.

Одним из классических примеров является то, как инфраструктура модульного тестирования TestNg предлагает все свои Java5 @Annotations в качестве комментариев, если вы используете TestNg с Java 1.4 .
Ноэто означает, что для запуска надлежащего набора тестов Testng должен был получить доступ к источникам вашей программы, а не только к скомпилированному двоичному файлу.

В отличие от Javadoc тэги, аннотации Java могут быть отражающими в том смысле, что они могут быть встроены в файлы классов , сгенерированные компилятором, и могут быть сохранены виртуальной машиной Java для возможности извлечения при запуске время .

0 голосов
/ 15 июня 2016

Аннотации используются для предоставления подробной информации компилятору, тогда как комментарии предназначены для удобства программиста, чтобы он знал, как структурирован код.

0 голосов
/ 11 июня 2012

Аннотация не является комментарием, но она используется для многих целей, таких как отладка ошибок, а также для инструкций, установленных для компилятора, но она не влияет на код времени выполнения.

@ override, @ deprecated и другие примеры аннотаций. Может использоваться с методами, конструкторами, параметрами, переменными.

0 голосов
/ 10 января 2010

Аннотации не только для 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...