Ich habe einen Java-Code, in dem es mehrere Rückgabeanweisungen in einer einzigen Methode gibt. Aber zum Zweck der Code-Reinigung kann ich nur eine Return-Anweisung pro Methode haben. Was kann getan werden, um dies zu überwinden?
Hier ist eine Methode aus meinem Code: -
%Vor%Es lohnt sich nicht, mehrere Returns zu einer einzelnen Return-Anweisung pro Methode zu ändern. Tatsächlich wird dies die Belastung des Speicherns des Ergebnisses in einer lokalen Variablen unnötig erhöhen und dann schließlich die Rückkehr machen,
%Vor%Ich hoffe, das hilft, aber es ergibt für mich keinen Sinn
Wie von anderen gesagt, macht eine einzelne Return-Anweisung Ihren Code nicht unbedingt sauberer. In diesem Fall macht das Aufteilen der Methode in kleinere Teile den Code wahrscheinlich lesbarer.
Zum Beispiel dieser Teil:
%Vor%könnte ersetzt werden, indem zwei Methoden eingeführt und diese zum Schreiben verwendet werden:
%Vor%Indem Sie dies an mehreren Stellen tun, wird die Struktur des Algorithmus klarer, was Ihnen möglicherweise mehr Einblick gibt, wie dieser Code umstrukturiert werden könnte, um Ihren Kodierungsrichtlinien zu entsprechen.
Wie bei user3580294 gibt es nichts falsches mit mehreren Return-Anweisungen. Allerdings könnten Sie die letzten beiden if-Anweisungen kombinieren, da sie im Wesentlichen dasselbe zurückgeben.
Verwenden Sie die Methode von @Octopus, wenn Sie unbedingt eine return-Anweisung haben müssen
Ich würde am Anfang der Methode eine action forward Variable setzen.
%Vor%Ersetzen Sie dann jede dieser beiden Zeilen
%Vor%mit diesen zwei Zeilen:
%Vor%gibt schließlich die Variable zurück.
%Vor%Das sollte nicht zu schwierig sein:)
Nebenbei bemerkt ... (eigentlich die ursprüngliche Antwort auf die Frage):
Mehrfache Return-Anweisungen können das Debuggen von Code erschweren.
Ich persönlich hätte nur ein Aktionsobjekt, das Sie am Ende der Methode zurückgeben. Der Vorteil davon ist, dass ich einen Breakpoint direkt auf die return-Anweisung setzen kann und genau sehe, was dieses Objekt ist.
Jede Protokollierung oder andere Querschneiderei, die ich später hinzufügen möchte, müsste nur an einem Punkt durchgeführt werden. Andernfalls müsste ich jeder Zeile, in die Sie zurückkehren, eine Protokollanweisung hinzufügen.
Tags und Links java return code-cleanup