Warum Java 8s Optional nicht als Methodenargumente verwendet werden sollte
Während Java 8s Optional als Rückgabetyp gedacht ist, wird es als Methode verwendet Die Argumente haben einige Debatten ausgelöst. Hier ist eine kurze Analyse des Problems:
Begründung für die Vermeidung optionaler Argumente
-
Unnötige Komplexität: Durch die Verwendung optionaler Argumente wird bedingte Logik eingeführt Methoden, die kontraproduktiv sein können.
-
Compiler Ineffizienzen:Optionales Umschließen erfordert unnötiges Boxen von Argumenten, was sich auf die Compilerleistung auswirkt.
-
Erhöhter Speicheraufwand:Optionale Parameter verbrauchen mehr Speicher als ihre nullbaren Äquivalente.
-
Risiko von Null-Referenzen: Die Übergabe von Optional als Null in tatsächlichen Parametern ist möglich Problem.
-
Datenfluss-Ungleichgewicht: Optional behandelt zwei Zustände (vorhanden und leer), die bei Verwendung als Eingabe getrennt werden müssen, was zu einer Komplexität des Datenflusses führt.
Alternative Ansätze
Bedenken Sie Folgendes, anstatt optionale Argumente zu verwenden Alternativen:
-
Zulassen von Nullable-Parametern:Verwenden Sie Nullable-Parameter (z. B. String p1, BigDecimal p2), um potenzielle Nullwerte anzugeben, und fügen Sie klare Javadoc-Beschreibungen hinzu.
-
Bereitstellen überladener Methoden: Erstellen Sie mehrere Methoden, die mit bestimmten Argumentkombinationen überladen sind, um lange Bedingungen zu vermeiden Aussagen. (z. B. berechne etwas (String p1), berechne etwas (BigDecimal p2), berechne etwas (String p1, BigDecimal p2))
Das obige ist der detaillierte Inhalt vonSollten Sie Java 8s Optional als Methodenargument verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!