^Logo by Verwenden Sie Try oder Entweder von Vavr.
Ein Fall, in dem Stream einen Wert verarbeitet und Sie eine aktivierte Ausnahme in einem Lambda-Ausdruck in der Mitte behandeln müssen.
Hinweis: Bitte denken Sie, dass "BookReader" schwer zu ändern ist, da es extern ist.
Ein Fall, in dem der Laufzeitfehler in RuntimeError geändert wird. Wenn Sie Fehler innerhalb einer Methode oder in einem privaten Bereich richtig behandeln, ist es bereits schwierig, Ausnahmen in die öffentliche Welt zu werfen. Ich mache mir auch Sorgen, dass ich das auch dann tun kann, wenn ich das jetzt nicht mache.
Richtig. Ich denke, es ist besser als einen RuntimeError zu werfen. Die Anzahl der lokalen Variablen hat sich von 0 auf 2 erhöht, die Codierungsmenge hat sich mehr als verdoppelt und die Verschachtelung ist 2 Ebenen tiefer, aber wenn das gesamte Team damit zufrieden ist, wäre es gut. ..
Zum Beispiel verwendet Golang Tapples (eine Reihe von mehreren Instanzen), um anomale Ergebnisse an den Aufrufer weiterzugeben, aber Java unterstützt keine Tupel auf der Ebene der Sprachspezifikation. Sie können es ersetzen, indem Sie eine Klasse erstellen, aber für die funktionale Programmierung haben Scala und Haskell bessere Ideen.
Vavr ist eine Bibliothek, die die funktionale Programmierung in Java erleichtert.
Either
Eine Klasse, die entweder den Wert "Rechts" oder "Links" annimmt. Es ist üblich, für das normale System "Rechts" und für das abnormale System "Links" einzustellen. (Wortspiel)
Ich denke, es wäre schön, wenn Sie eine erweiterte Version von "Optional" haben könnten. Mit "Optional" können nur Informationen darüber gesendet werden, ob es "Null" ist oder nicht, aber mit "Entweder" können Werte wie Ausnahmen gesendet werden.
Try
Es ist eine Klasse zum Schreiben von try-catch als Funktionstyp. Sie können einen Lambda-Ausdruck erhalten, der eine aktivierte Ausnahme auslösen und ausdrücken kann, was passiert, wenn eine Ausnahme in Form eines Lambda auftritt.
Stellen Sie sich dies als eine "optionale" erweiterte Version vor, die entweder normale oder Ausreißer enthält, genau wie "entweder".
Wenn man nur die Atmosphäre betrachtet, scheint es, dass Try eine Option ist, aber in Try wird die Eingabe einer abnormalen Verarbeitung zu "Throwable" und Downcasting tritt häufig auf, sodass es Fälle gibt, in denen das Schreiben mit "Entweder" nicht schadet.
Zum Beispiel denke ich, dass es so aussehen wird.
Either:
Try:
Beachten Sie, dass Try "Throws Throwable" ist. Wenn Sie richtig damit umgehen möchten, müssen Sie einen Downcast durchführen.
Wenn Sie anfangen, Vavr fest zu verwenden, sieht es nicht mehr wie Java aus und ist schwer zu warten. Sie werden sich fragen, warum Sie Scala oder Haskell nicht verwenden. Es wird daher empfohlen, es als Prise zu verwenden.
Sie müssen Java nicht zwangsweise weiter verwenden? Kann dem Chef empfohlen werden.
Ich frage mich, ob es um OSS geht ...
Recommended Posts