Ich habe diese Frage gesehen, habe aber noch einige Fragen zur Verwendung des assert
Schlüsselworts. Ich habe mit ein paar anderen Programmierern über die Verwendung diskutiert assert
. Für diesen Anwendungsfall gab es eine Methode, die null zurückgeben kann, wenn bestimmte Voraussetzungen erfüllt sind. Der von mir geschriebene Code ruft die Methode auf, gibt dann an, dass sie nicht null zurückgibt, und verwendet weiterhin das zurückgegebene Objekt.
Beispiel:
class CustomObject {
private Object object;
@Nullable
public Object getObject() {
return (object == null) ? generateObject() : object;
}
}
Stellen Sie sich jetzt vor, ich benutze es so:
public void useObject(CustomObject customObject) {
object = customObject.getObject();
assert object != null;
// Do stuff using object, which would throw a NPE if object is null.
}
Mir wurde gesagt, ich sollte das entfernen assert
, dass sie niemals im Produktionscode verwendet werden sollten, sondern nur zum Testen. Ist das wahr?
Objects.requireNonNull
in Java 8 nicht mehr erforderlich ist ).
-ea
oder gleichwertig aktivieren .