Anmerkungssymbol @ in Java

Bishal Awasthi 12 Oktober 2023
  1. Die @Override-Annotation in Java
  2. Die @SuppressWarnings-Annotation in Java
  3. Die Annotation @Deprecated in Java
Anmerkungssymbol @ 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.

Verwandter Artikel - Java Annotation