15 Stimmen

Verwenden Sie Java-Annotationen?

Mögliche Duplikate:
Wie und wo werden Annotationen in Java verwendet?
Java Beans, Anmerkungen: Was bewirken sie? Wie helfen sie mir?

Immer wieder lese ich, dass die Annotationen von Java 5 ein "fortgeschrittenes Feature" der Sprache sind. Bis vor kurzem habe ich Annotationen nicht viel benutzt (außer dem üblichen @Override, &c), aber die Arbeit an einer Reihe von Webservice-bezogenen Projekten hat mich dazu gezwungen. Da ich Java vor 5 gelernt habe, habe ich mir nie wirklich die Zeit genommen, mich hinzusetzen und das Annotationssystem zu verstehen.

Meine Frage - habt ihr eigentlich verwenden. Anmerkungen? Wie hilfreich sind sie für Sie im Alltag? Wie viele StackOverflow-Benutzer mussten schon einmal eine eigene Anmerkung schreiben?

3 Stimmen

Das ist ziemlich subjektiv. Bitte bearbeiten und markieren Sie diese Frage als Community Wiki. Hier sind einige weniger oder mehr ähnliche Fragen mit interessanten Antworten: stackoverflow.com/questions/2072681/ , stackoverflow.com/questions/1372876/ y stackoverflow.com/questions/1862666/

0voto

Chris Dennett Punkte 21894

Ich verwende Annotationen, um in meinem Zustandssynchronisationssystem zu beschreiben, welche Klassen Spezialisierungen der annotierten Klassen sind und in welcher Umgebung sie verwendet werden sollen (wenn ein Objekt erstellt wird, wird es für seine Entitätslisten ausarbeiten, welche die besten Entitätsklassen für die Knoten im Netzwerk sind; d.h. eine Player-Entität für einen Server-Knoten ist stattdessen eine ServerPlayer-Entität). Zusätzlich werden die Attribute innerhalb der Klassen beschrieben und wie sie zwischen den Rechnern synchronisiert werden sollten.

0voto

Mark Bolusmjak Punkte 22696

Wir haben einen Report Builder als Teil unserer Webapplikation. Ein Benutzer kann eine große Anzahl von Widgets hinzufügen, die alle kleine Variationen desselben Themenkomplexes sind (Diagramme, Tabellen usw.).

Die Benutzeroberfläche baut sich auf der Grundlage von benutzerdefinierten Anmerkungen in den Widget-Klassen selbst auf. (z.B. könnte eine Annotation einen Standardwert und gültige Werte enthalten, die als Dropdown gerendert würden. Oder ein Flag, das angibt, ob das Feld obligatorisch ist).

Es hat sich herausgestellt, dass es eine gute Möglichkeit ist, Entwicklern die Entwicklung von Widgets zu ermöglichen, ohne die Benutzeroberfläche anfassen zu müssen.

0voto

Marcus Leon Punkte 52789

Wir haben lediglich Annotationen verwendet, um eine einfache Möglichkeit zur Validierung unserer POJOs zu schaffen:

@NotEmpty
@Pattern(regex = "I")
private String value;

Dann lassen wir das durch die Hibernate-Validierer die die gesamte Validierung für uns übernehmen wird:

import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.InvalidValue;

public void validate(T validateMe) {
    ClassValidator<T> validator = new ClassValidator<T>((Class<T>) validateMe.getClass());
    InvalidValue[] errors = validator.getInvalidValues(validateMe);
}

Funktioniert großartig. Schöner sauberer Code.

0voto

Andrew Cowan Punkte 46

Wir verwenden benutzerdefinierte Annotationen als Teil unseres Integrationstestsystems:

@Artifact: Verknüpft einen Integrationstest mit einer Problem-ID. Anschließend werden automatisch Trace-Matrizen für unsere Test- und Regulierungsabteilungen erstellt.

@Exclude: Ignoriert einen Integrationstest auf der Grundlage der Browserplattform/-version. Hält die IE 6-Fehler davon ab, unsere nächtlichen Testläufe zu verstopfen :)

@SeleniumSession: Definiert testspezifische Selenium-Einstellungen für jeden Integrationstest.

Sie sind ein sehr mächtiges Instrument, aber man muss sie sorgfältig einsetzen. Werfen Sie einfach einen Blick auf die frühen .NET Enterprise-Klassendateien, um zu sehen, was für ein Albtraum obligatorische Anmerkungen sein können :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X