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.)
Was bedeutet das @-Symbol in Java?
Umgekehrt666444
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
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
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 @Deprecated
die angibt, dass eine Methode nicht mehr verwendet werden sollte, aber aus Gründen der Abwärtskompatibilität noch vorhanden ist, und @SupressWarnings
um 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.
phydroxid
Die Anmerkungen sind für den Leser oder Compiler, nicht für ausführbaren Code.
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
nichtjava @
– LF00
7. Juli 2017 um 9:53 Uhr
Was bedeutet das @-Zeichen in Java?
– LF00
7. Juli 2017 um 9:54 Uhr