IN ACHT NEHMEN!
Zusicherungen werden zur Laufzeit entfernt, sofern Sie beim Kompilieren des Codes nicht explizit angeben, dass Zusicherungen aktiviert werden sollen. Java-Assertions dürfen nicht im Produktionscode verwendet werden und sollten auf private Methoden beschränkt werden (siehe Ausnahme vs. Assertion ), da private Methoden nur den Entwicklern bekannt sein und von diesen verwendet werden sollen. Auch assert
werfen AssertionError , die sich Error
nicht Exception
, und die in der Regel bedeutet , dass Sie einen sehr abnormal Fehler haben (wie „OutOfMemoryError“ , die von schwer zu erholen, nicht wahr?) Sie sind nicht in der Lage sein zu behandeln , erwartet.
Entfernen Sie das Flag "enable assertions" und überprüfen Sie mit einem Debugger, ob Sie den Auslöser "IllegalArgumentException" nicht verwenden ... da dieser Code nicht kompiliert wurde (erneut, wenn "ea" entfernt wurde).
Es ist besser, die zweite Konstruktion für öffentliche / geschützte Methoden zu verwenden, und wenn Sie etwas wollen, das in einer Codezeile ausgeführt wird, gibt es mindestens einen Weg, den ich kenne. Ich persönlich verwende die Spring Framework - Assert
Klasse, die einige Methoden zum Überprüfen von Argumenten enthält und bei Fehlern "IllegalArgumentException" auslöst. Grundsätzlich ist das, was Sie tun:
Assert.notNull(obj, "object was null");
... der tatsächlich genau den Code ausführt, den Sie in Ihrem zweiten Beispiel geschrieben haben. Es gibt ein paar andere nützliche Methoden wie hasText
, hasLength
da drin.
Ich schreibe nicht gerne mehr Code als nötig, deshalb bin ich froh, wenn ich die Anzahl der geschriebenen Zeilen um 2 reduziere (2 Zeilen> 1 Zeile) :-)
obj.hashCode()
stattdessen eine einfache ;-)