Was bedeutet das @-Symbol in Java?

Lesezeit: 5 Minuten

Benutzer-Avatar
Umgekehrt666444

Ich weiß, was es in einem Kommentar zu Dokumentationszwecken bedeutet, aber was bedeutet es darüber hinaus? (Normalerweise würde ich das einfach googeln, aber jedes Symbol, das kein Buchstabe ist, wird in den Ergebnissen angezeigt.)

  • stackoverflow.com/questions/24221/java-annotations

    – fdsa

    5. August 2015 um 1:36 Uhr

  • stackoverflow.com/questions/19551022/the-symbol-in-java

    – edittheprogrammerguy

    5. August 2015 um 1:36 Uhr

  • mögliches Duplikat von How to get a nice URL like “http://stackoverflow.com/questions/1074/asp-mvc”

    – fdsa

    5. August 2015 um 1:40 Uhr

  • Sie können in Google mit suchen java At nicht java @

    – LF00

    7. Juli 2017 um 9:53 Uhr

  • Was bedeutet das @-Zeichen in Java?

    – LF00

    7. Juli 2017 um 9:54 Uhr

Benutzer-Avatar
Kehrmaschine

Das @ Symbol bezeichnet eine Java-Anmerkung. Was eine Java-Annotation tut, ist, dass sie der Variablen, der Methode, der Klasse, der Schnittstelle oder anderen Sprachelementen ein spezielles Attribut hinzufügt. (Dies kann konfiguriert werden, wenn Sie die Anmerkung deklarieren.) Wenn Sie etwas eine Anmerkung hinzufügen, können andere Teile des Programms prüfen, ob etwas eine Anmerkung hat oder nicht. Es kann dann diese Informationen verwenden, um alles zu tun, was es braucht.

Lassen Sie mich Ihnen einige Beispiele geben:

Das @Override Anmerkung

public class SuperClass {
    public void someInterestingMethod() {
        System.out.println("Superclass!");
    }
}

public class DerivedClass extends SuperClass {
    public void someInterestngMethod() {
        System.out.println("Derived class!");
    }
}

Und wenn Sie dies tun:

SuperClass sc = new DerivedClass();
sc.someInterestingMethod();

Das someInterestingMethod() Anruf sollte dynamisch versendet und gedruckt werden "Derived class!", Rechts? Nun, die Methode der abgeleiteten Klasse war tatsächlich falsch geschrieben, also DerivedClass hat eine eigene separate Methode aufgerufen someInterestngMethod()völlig unabhängig von der Oberklasse ‘ someInterestingMethod(). Als solche, someInterestingMethod() wird nicht mehr überschrieben, und die Implementierung der Oberklasse wird aufgerufen.

Das @Override Schlüsselwort soll dabei helfen. Es signalisiert dem Compiler Ihre Absicht, dass die annotierte Methode eine Überladung einer der Methoden der Vorfahrenklasse sein soll. Wenn dies nicht der Fall ist (wie in diesem Tippfehlerfall oder wenn die SuperClass API geändert und die Methode umbenannt), wird Ihre Kompilierung fehlschlagen, um Ihre Aufmerksamkeit auf die fehlerhafte Überschreibung zu lenken.

Das @SuppressWarnings Anmerkung

Hier ist eine Methode:

public void someMethod() {
    int i;
}

Es wird eine Compiler-Warnung geben, die das sagt i wird nie benutzt. Sie können also hinzufügen @SuppressWarnings zur Methode zu unterdrücken die Warnung:

@SuppressWarnings("unused")
public void someMethod() {
    int i;
}

Beachten Sie, dass es einen Parameter für die gibt @SuppressWarnings Anmerkung. Einige Anmerkungen haben Parameter und Sie können sie im Javadoc suchen. Aber für diejenigen, die keine Parameter haben, müssen Sie sie nicht hinzufügen () wie eine Methode.

Sie können auch Ihre eigenen Anmerkungen deklarieren und Reflektion verwenden, um nach ihnen zu suchen. Die obigen 2 Anmerkungen werden vom Compiler überprüft.

  • @Alexander-ReinstateMonica Ich weiß nicht, warum ich so lange vergessen habe, dies zu beheben, aber jemand, der dies erneut abgelehnt hat, hat daran erinnert, dass ich diese spezielle Antwort vor einem halben Jahrzehnt gepostet hatte … Jetzt ist es behoben 🙂

    – Kehrmaschine

    25. Mai 2020 um 11:20 Uhr

  • Hey, danke, dass du das angesprochen hast. Hätten Sie etwas dagegen, wenn ich die Bearbeitung vorschlage? Ich habe ein Beispiel im Sinn, das die Nützlichkeit von besser widerspiegeln würde @Override

    – Alexander

    25. Mai 2020 um 13:03 Uhr

  • Oh, meine Änderungen werden sofort ohne Genehmigung angezeigt 😐 Fluch des hohen Ansehens haha. Könntest du mir sagen, was du denkst? Fühlen Sie sich frei, zu optimieren/zurückzusetzen, wenn Sie der Meinung sind, dass dies angemessen ist. stackoverflow.com/posts/31822268/revisions

    – Alexander

    25. Mai 2020 um 13:10 Uhr

  • Freut mich, dass ich helfen konnte 🙂 Habe meinen jetzt irrelevanten Kommentar gelöscht

    – Alexander

    25. Mai 2020 um 13:15 Uhr

Benutzer-Avatar
Abaelard Chow

Das @-Zeichen wird verwendet, um die Java-Anmerkung anzugeben.

https://en.wikipedia.org/wiki/Java_annotation

Es gibt integrierte Java-Anmerkungen und benutzerdefinierte benutzerdefinierte Anmerkungen.

Anmerkungen werden auf verschiedene Weise verwendet, z. B. zum Unterdrücken von Warnungen, zum Zuordnen von Methoden zu URI (Servlet), zuordnen von Variablen zu Ressourcen (JNDI) usw

Benutzer-Avatar
Karl Spencer

Dafür wird das @-Zeichen verwendet Anmerkungen. Nach meiner Erfahrung ist die häufigste Anmerkung @Override, was anzeigt, dass eine Methode in einer Oberklasse deklariert ist. Andere gebräuchliche Anmerkungen sind @Deprecateddie angibt, dass eine Methode nicht mehr verwendet werden sollte, aber aus Gründen der Abwärtskompatibilität noch vorhanden ist, und @SupressWarningsum zu verhindern, dass Warnungen im Compiler angezeigt werden.

Beachten Sie, dass es tatsächlich möglich ist, Anmerkungen zu erhalten, die nicht in den Java-Kernbibliotheken enthalten sind, und Ihre eigenen Anmerkungen zu deklarieren.

Das @-Symbol kennzeichnet Anmerkungen. Sie liefern Informationen über eine Klasse, ihr Feld oder ihre Methode (über der sie erscheinen). Sie können keine Operationen durchführen. Die Compiler oder speziellen Anmerkungsprozessoren verwenden diese Informationen, um das Schreiben von Code weniger ausführlich zu machen.

In der Java Persistence API verwenden Sie sie, um eine Java-Klasse Datenbanktabellen zuzuordnen.

Zum Beispiel @Table() Wird verwendet, um die bestimmte Java-Klasse der Datumsbasistabelle zuzuordnen.

@Entity Stellt dar, dass die Klasse eine Entitätsklasse ist.

Ebenso können Sie viele Anmerkungen verwenden, um einzelne Spalten zuzuordnen, IDs zu generieren, Versionen, Beziehungen usw. zu generieren.

Wie einige andere vorschlagen, ist es die Anmerkung von Java. Es hilft dem Compiler, Ihren Code zu validieren und auch den Programmierer zu benachrichtigen.

Sehr einfaches Codebeispiel:

public class SomeClass {

    @Override
    public String toString() {
        return "SomeClass";
    }

    @Deprecated
    public void doSomeOperation() {
        // some operation...
    }
}

Die Anmerkung von SomeClass#toString welches ist @Override hilft dem Compiler festzustellen, dass es sich um eine überschriebene Funktion aus der impliziten Vererbung an die Klasse handelt Object.

Während die Anmerkung von SomeClass#doSomeOperation warnt den Programmierer, dass die Funktion selbst bereits veraltet ist und nicht verwendet werden sollte.

Benutzer-Avatar
phydroxid

Die Anmerkungen sind für den Leser oder Compiler, nicht für ausführbaren Code.

1205900cookie-checkWas bedeutet das @-Symbol in Java?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy