Anmerkungssymbol @ in Java
-
Die
@Override
-Annotation in Java -
Die
@SuppressWarnings
-Annotation in Java -
Die Annotation
@Deprecated
in Java
In diesem Artikel wird das Symbol @
vorgestellt, das in Java als Annotationen bezeichnet wird. Wir konzentrieren uns auf integrierte Java-Annotationen wie @Override
, @SuppressWarnings
und @Deprecated
.
Die @Override
-Annotation in Java
Annotation ist eine Möglichkeit, die zusätzlichen Informationen anzugeben, die mit einer Klasse, Schnittstelle und Methode in Java verbunden sind. Der Java-Compiler und die JVM verwenden die bereitgestellten Informationen unter Verwendung von Annotationen. Eine Anmerkung beginnt mit dem @
-Symbol. Die Annotation @Override
stellt sicher, dass die Methode der untergeordneten Klasse die Methode der übergeordneten Klasse überschreibt. Es handelt sich um eine Markierungsanmerkung, da sie keine Werte oder Elemente enthält. Wenn wir die Annotation @Override
verwenden, generiert der Compiler Fehler und warnt uns, wenn beim Überschreiben der Methode ein Fehler auftritt. Die wahrscheinlichen Fehler, die überprüft werden, sind der Rechtschreibfehler und die Fehler in Argument und Rückgabetyp. Wir können die Verwendung der Annotation @Override
demonstrieren, indem wir eine Vererbung erstellen. Zunächst werden wir die Annotation nicht verwenden, aber später werden wir damit demonstrieren, wie @Override
funktioniert.
Erstellen Sie beispielsweise eine Klasse Parent
und schreiben Sie eine Methode message()
mit dem Rückgabetyp void
. Drucken Sie einige Nachrichten innerhalb der Methode. Erstellen Sie auf ähnliche Weise eine weitere Klasse, Child
, und erweitern Sie die Klasse Parent
. Erstellen Sie dieselbe Methode Nachricht
mit dem Typ void
und schreiben Sie eine Nachricht hinein. Schreiben Sie direkt vor die Methode die Annotation @Override
. Erstellen Sie dann innerhalb der Hauptklasse Objekte jeder der Klassen und rufen Sie die Methode message()
auf.
Hier erbt die Unterklasse die Oberklasse und jede der Methoden in jeder Klasse wird problemlos aufgerufen.
Beispielcode:
class Annotation {
public static void main(String[] args) {
new Child().message();
new Parent().message();
}
}
class Parent {
void message() {
System.out.println("Invoked from the Parent class");
}
}
class Child extends Parent {
@Override
void message() {
System.out.println("Invoked from the Child class");
}
}
Ausgabe:
Invoked from the Child class
Invoked from the Parent class
Ändern Sie die Methode message()
in der Klasse Child
in message()
. Führen Sie dann das Programm aus. Es zeigt die folgende Ausgabe.
Ausgabe:
Annotation.java:18: error: method does not override or implement a method from a supertype
Hier haben wir den Methodennamen geändert. Manchmal kann der Programmierer beim Überschreiben solche Fehler begehen. Somit stellt die Annotation @Override
jeden Fehler beim Überschreiben einer Methode sicher und warnt den Programmierer.
Die @SuppressWarnings
-Annotation in Java
Die Annotation @SuppressWarnings
weist den Compiler an, den Fehler für den angegebenen Codeabschnitt zu unterdrücken oder zu ignorieren. Wir können die Annotation für einen Typ, ein Feld, eine Methode, einen Parameter, einen Konstruktor und eine lokale Variable verwenden. Wir können den Wert unchecked
zwischen den Klammern der Annotation als @SuppressWarnings("unchecked")
angeben, um den Fehler zu unterdrücken. Wenn wir die Annotation vor der Klasse verwenden, werden alle Fehler innerhalb der Klasse unterdrückt. Und wenn wir es vor einer Methode innerhalb einer Klasse verwenden, wird es nur den Fehler dieser bestimmten Klasse unterdrücken.
Importieren Sie beispielsweise das Paket util
und erstellen Sie eine Klasse namens Annotation
. Schreiben Sie @SuppressWarnings("unchecked")
vor der Hauptmethode. Erstellen Sie innerhalb der Methode main eine Instanz der ArrayList()
und weisen Sie diese der Variablen fruits
zu. Fügen Sie dann die Werte apple
und mango
mit der Methode add()
hinzu. Drucken Sie zum Schluss die Variable fruits
.
Im folgenden Beispiel haben wir alles aus dem Paket util
importiert. Es importiert die Klasse ArrayList
, die wir danach verwenden. Der obige Code wird erfolgreich ausgeführt, obwohl ein Fehler aufgetreten ist. Wir haben die nicht generische Sammlung ArrayList
verwendet. Wir haben den Typ nicht innerhalb eines <>
-Symbols angegeben. Daher ist der Code fehlerhaft. Aber es wird ausgeführt, weil wir den Fehler mit der Annotation @SuppressWarnings
unterdrückt haben.
Beispielcode:
import java.util.*;
class Annotation {
@SuppressWarnings("unchecked")
public static void main(String args[]) {
ArrayList fruits = new ArrayList();
fruits.add("apple");
fruits.add("mango");
System.out.println(fruits);
}
}
Ausgabe:
[apple, mango]
Wenn wir die Annotation für den folgenden Code nicht verwenden, zeigt der Compiler den folgenden Fehler an.
Ausgabe:
Note: Annotation.java uses unchecked or unsafe operations.
Die Annotation @Deprecated
in Java
Die Annotation @Deprecated
wird verwendet, um den angegebenen Code als veralteten Code zu kennzeichnen. Der Compiler zeigt eine veraltete Warnung an, wenn wir die Annotation verwenden. Wir können einen Typ, eine Methode, ein Feld und einen Konstruktor mit der Annotation @Deprecated
annotieren.
Erstellen Sie beispielsweise eine Klasse Auto
und einen Konstruktor mit den Parametern color
, length
und width
. Verwenden Sie die Annotation @Deprecated
vor dem Konstruktor. Lassen Sie den Körper leer. Erstellen Sie einen weiteren Konstruktor und schreiben Sie darin einen Stringparameter name
. Erstellen Sie eine weitere Klasse, Annotation
, und rufen Sie innerhalb der Methode main diese beiden Konstruktoren auf.
Im folgenden Beispiel haben wir die Annotationen @Deprecated
vor dem ersten Konstruktor verwendet. Es ermöglicht dem Compiler, eine Warnung zu generieren, die besagt, dass der Konstruktor veraltet ist. Auf diese Weise können wir die Annotation verwenden, um etwas anzugeben, das im Code veraltet ist. Es wird nicht empfohlen, den veralteten Code zu entfernen, da er bei Bedarf für ein Rollback auf frühere Versionen verwendet werden kann. In solchen Fällen wird empfohlen, die neue Alternative zu verwenden.
Beispielcode:
class Annotation {
public static void main(String args[]) {
new Car("red", 550, 300);
new Car("Lambo");
}
}
class Car {
@Deprecated
Car(String color, int length, int width) {}
Car(String name) {}
}
Ausgabe:
Note: Annotation.java uses or overrides a deprecated API.