В чем разница между «аннотацией» в смысле Java и в смысле iPhone SDK? - PullRequest
2 голосов
/ 02 апреля 2010

что такое класс аннотации. какая польза от этого в Java / Android.

В iphone Annotation используется для добавления булавки на карту.

java имеет пакет java.lang.Annotation ... какая польза от него? Могу ли я иметь примеры, учебные пособия, примеры кодов и т. д.

Ответы [ 2 ]

11 голосов
/ 02 апреля 2010

Два понятия не связаны:

  • В iPhone SDK аннотация - это своего рода примечание, которое вы можете поместить на карту.
  • В Java (и Android SDK) аннотации - это особенность языка 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 голос
/ 02 апреля 2010

Аннотации в Java - действительно довольно мощная концепция.Поскольку аннотации можно анализировать с помощью Reflectioon API, они очень удобны при выполнении различных задач.Я думаю, что хороший и простой пример - это JAXB API.Это позволяет вам писать / читать файлы XML, просто работая с POJO.Не нужно вручную маршалировать / демаршализировать дерево XML.Все, что вам нужно, это просто пометить заинтересованные переменные, которые вы хотите включить в xml, с аннотациями.Таким образом, говорится, что эти переменные, содержащие метаданные, позволяют JAXB API выяснить, какие переменные вас интересуют, и записать / прочитать их значения в / из XML-файла.

Не разочаровывайтесь, что аннотации просто играют некоторые "украшение "роль, как проведение автора или информацию о версии или около того.Они намного мощнее ...

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