Dieser Artikel führt Sie in Assertions In ein ein einfaches, aber wichtiges Konzept und anschließend eine programmatische Demonstration. Die folgenden Hinweise werden in diesem Artikel behandelt:
- Warum brauchen Sie Aussagen?
- Aktivieren und Deaktivieren von Java-Zusicherungen
- Wie verwende ich Java Assertions?
- Wo kann man Assertion nicht verwenden?
- Verwenden von Zusicherungen für Operationen
Also lasst uns anfangen,
Möchten Sie testen, ob eine Annahme in Ihrem Programm richtig ist? Nun, Sie können dies mit Assertion-Anweisungen in Java tun. Mit dem Schlüsselwort assert können Sie Zusicherungen erstellen, mit denen Sie Ihre Annahmen in einem Programm testen können.
Nehmen wir eine Instanz. Ein Mitarbeiter in einem Unternehmen ABC kann kein negatives Alter haben. Sie können hierfür eine Behauptung verwenden, um sicherzustellen, dass das Alter eines Mitarbeiters keine negative Zahl ist.
Nehmen wir eine andere Instanz. Wenn Ihre Methode die Geschwindigkeit eines Partikels berechnet, gehen Sie davon aus, dass die Geschwindigkeit des Partikels geringer ist als die Lichtgeschwindigkeit. Um diese Annahme zu testen, können Sie Assertion-Anweisungen in Java verwenden.
Die Syntax
Es gibt zwei Formen der Behauptung:
assertexpression1
Hier,
Ausdruck 1 ist ein boolescher Ausdruck.
assert1: expression2
Salz gegen Koch gegen Marionette
In dieser Form ist Ausdruck 1 ein boolescher Ausdruck, und Ausdruck 2 hat einen Wert, der mit Ausdruck1 verglichen wird.
Nun könnten Sie sich fragen: Welches Formular wählen Sie für Ihre Programme? Sie können das zweite Formular verwenden, wenn Ihr Programm zusätzliche Informationen enthält, mit denen Sie die Fehler oder Ausfälle im Programm diagnostizieren können.
Vor Java 1.4 hätten Sie das Schlüsselwort 'assert' verwenden können, um Ihre Variablen, Methoden, Funktionen und vieles mehr zu benennen. Bei neueren Versionen der JVM kann dies möglicherweise zu einem Namenskonflikt führen. Sie müssen sich daher dieser Tatsache ein wenig bewusst sein.
Fahren Sie mit diesem Artikel über Zusicherungen in Java fort
Warum brauchen Sie Aussagen?
Sie könnten denken, dass eine Assertion-Anweisung in Java unnötig sein könnte. Für kleine Programme ist dies möglicherweise nicht erforderlich. Wenn es jedoch um große Programme mit komplexer Logik geht, sind diese Aussagen nützlich.
Assertionsanweisungen werden hauptsächlich zum Debuggen und Testen verwendet. Wenn die Assertion-Anweisung fehlerhaft ist, gibt die JVM einen Fehler aus, der als AssertionError gekennzeichnet ist. Wie Sie sehen, bietet dies eine effektive Möglichkeit, Fehler in einem Programm zu erkennen und zu korrigieren.
Zusätzlich zum Debuggen und Testen macht die Assertion-Anweisung Ihren Code lesbarer. Nehmen wir eine Instanz:
Der folgende Code hilft uns dabei, bestimmte Bedingungen zu überprüfen, die die ordnungsgemäße Funktion der Anwendung beeinträchtigen können.
Verbindung conn = getConnection () if (conn == null) {neue RuntimeException auslösen ('Verbindung ist null')}
Mit einer einzigen Assertion-Anweisung können Sie die 'if and throw' -Anweisung im Wesentlichen wie folgt beseitigen:
Verbindung conn = getConnection () assert conn! = Null
Fahren Sie mit diesem Artikel über Zusicherungen in Java fort
php.mysql_fetch_array
Aktivieren und Deaktivieren von Java-Zusicherungen
Da Java-Zusicherungen das Schlüsselwort assert verwenden, müssen Sie keine Pakete oder Bibliotheken importieren. Wie bereits erwähnt, können Sie das Schlüsselwort assert für Variablen, Methoden und Funktionen verwenden. Aus Gründen der Abwärtskompatibilität und um einen möglichen Namenskonflikt zu vermeiden, deaktiviert die JVM standardmäßig die Validierung von Zusicherungen. Die Zusicherungen müssen explizit aktiviert werden. Sie können dies mit einem Befehlszeilenargument (-enableassertions) oder mit der Kurzform (-ea) tun.
Betrachten wir einige Beispiele:
java -ea com.baeldung.assertion.Assertion
Das Obige ermöglicht die Bestätigung für Klassen.
java -ea: com.baeldung.assertion… com.baeldung.assertion.Assertion
Sie können Zusicherungen auch für bestimmte Pakete und Klassen aktivieren. Dies wird im obigen Beispiel gezeigt, in dem wir Zusicherungen für die Klassen im Paket com.baeldung.assertion aktiviert haben.
Nachdem wir nun gelernt haben, wie Sie Assertions aktivieren können, wollen wir sehen, wie wir sie deaktivieren können. Ähnlich wie beim Aktivieren von Zusicherungen kann das Deaktivieren mithilfe eines Befehlszeilenarguments (-disableassertions) oder seiner Kurzform (-da) für bestimmte Pakete und Klassen erfolgen.
Fahren Sie mit diesem Artikel über Zusicherungen in Java fort
Wie verwende ich Java Assertions?
Es gibt zwei Dinge, die Sie benötigen, um Zusicherungen in Ihrem Programm zu implementieren - das Schlüsselwort assert und eine boolesche Bedingung. Nehmen wir ein Beispiel mit einem Code-Snippet:
public void setup () {Verbindung conn = getConnection () assert conn! = null}
Sie können auch eine Zeichenfolge für die obigen Aussagen verwenden, wie unten gezeigt:
public void setup () {Verbindung conn = getConnection () assert conn! = null: 'Verbindung ist null'}
Wenn im obigen Codeausschnitt ein AssertionError vorhanden ist, wird die Zeichenfolge zum Erstellen des Fehlers verwendet.
In beiden oben genannten Fällen prüft der Code, ob die Verbindung zu einer externen Quelle einen Wert ungleich Null zurückgibt. Wenn der Wert null ist, löst die JVM automatisch einen AssertionError aus.
Im zweiten Beispiel wird die von uns verwendete Zeichenfolge im Stack-Trace angezeigt, wenn ein AssertionError vorhanden ist. Diese zusätzlichen Informationen sind hilfreich, wenn Sie versuchen, das Programm zu debuggen. Mithilfe dieser detaillierten Meldungen können Sie einen Fehler beheben, durch den die Bestätigung fehlgeschlagen wäre. Wenn Sie die Klasse mit aktivierten Zusicherungen ausführen, ähnelt das Ergebnis dem folgenden:
Ausnahme im Thread 'main' java.lang.AssertionError: Die Verbindung ist null
at com.baeldung.assertion.Assertion.setup (Assertion.java:15)
at com.baeldung.assertion.Assertion.main (Assertion.java:10)
Betrachten wir ein einfaches Beispiel:
import java.util.Scanner class AssertionExample {public statisch void main (String args []) {Scanner scanner = neuer Scanner (System.in) System.out.print ('Geben Sie Ihr Alter ein') int value = scanner.nextInt () Wert bestätigen> = 18: 'Nicht gültig' System.out.println ('Wert ist' + Wert)}}
Nachdem Sie den Code zur Hand haben, ist es Zeit, ihn auszuführen. Da Zusicherungen standardmäßig deaktiviert sind, müssen Sie sie aktivieren.
Sie können den obigen Code wie folgt kompilieren: javac AssertionExample.java
Sie können es dann wie folgt ausführen: java -ea AssertionExample
Das Ausgabe für den obigen Code ist:
Geben Sie Ihr Alter 11 ein
Ausnahme im Thread 'main' java.lang.AssertionError: Nicht gültig
Wie Sie sehen können, haben wir 11 als Wert für das Alter angegeben. Das Programm behandelt es nicht als legitimen Wert. Sie sehen also einen AssertionError.
Fahren Sie mit diesem Artikel über Zusicherungen in Java fort
Wo kann man Assertion nicht verwenden?
Während es gut ist, Zusicherungen in Situationen zu haben, die interne Invarianten, Kontrollflussinvarianten, Vorbedingungen, Nachbedingungen und Klasseninvarianten umfassen, gibt es einige Situationen, in denen Zusicherungen nicht verwendet werden sollten.
Lassen Sie uns mehr darüber erfahren:
Zur Überprüfung von Argumenten in öffentlichen Methoden
Sie sollten verstehen, dass die Argumentprüfung Teil veröffentlichter Spezifikationen oder Verträge einer Methode ist. Diese müssen befolgt werden, unabhängig davon, ob Zusicherungen aktiviert sind oder nicht.
Fahren Sie mit diesem Artikel über Zusicherungen in Java fort
Verwenden von Zusicherungen für Operationen
Standardmäßig sind Zusicherungen deaktiviert. Ihr Programm sollte nicht davon ausgehen, dass der boolesche Ausdruck in einer Assertion-Anweisung immer ausgewertet wird.
Nehmen wir ein Beispiel, wie sich dies auf Ihr Programm auswirken könnte. Angenommen, Sie möchten alle Nullelemente aus einer Liste von Namen entfernen, und Sie wissen, dass Ihre Liste Nullelemente enthält.
assert names.remove (null)
Das obige Code-Snippet würde funktionieren, wenn Zusicherungen aktiviert wären. Es würde jedoch fehlschlagen, wenn Zusicherungen deaktiviert würden, da der Code keine Nullelemente entfernt. Um dieses Problem zu beheben, können Sie das folgende Codefragment in Ihrem Programm verwenden:
boolean nullsRemoved = names.remove (null)
assert nullsRemoved
Das obige Codefragment entfernt Nullwerte, selbst wenn Zusicherungen deaktiviert wurden.
wie man in Java typisiert
Nachdem Sie das obige Java-Programm ausgeführt haben, hätten Sie 'Assertions in Java' verstanden. Damit sind wir am Ende dieses Artikels über 'Quicksort in Java' angelangt. Wenn Sie mehr erfahren möchten,Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka wurde entwickelt, um Sie sowohl für Kern- als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring zu schulen.
Hast du eine Frage an uns? Bitte erwähne es im Kommentarbereich dieses Blogs und wir werden uns so schnell wie möglich bei dir melden.