Ich bin ziemlich neu in Java und von Python und PHP bin ich zu Standardwerten für Funktionsparameter gewöhnt.Ist Überladen wirklich die einzige Möglichkeit, Standardwerte für Methodenparameter in Java zu erhalten?
So habe ich eine Angewohnheit, Methoden zu schreiben, die aus etwas anderen Situationen, in denen Sie nur einige der Werte festlegen möchten, aufgerufen werden sollen. Zum Beispiel wäre dies in meinem PHP-Code üblich, wo ich Factory-Methoden habe, die Objektinstanzen mit leicht unterschiedlichen Eigenschaften bereitstellen.
In Java, so scheint es, muss ich eine Methode haben, die alle Parameter und dann mehrere überladene Varianten erwartet, die diese Methode mit einigen der Parameter aufrufen würden, die auf Standardeinstellungen gesetzt sind, und einige, die vom Aufrufer bereitgestellt werden. Was ist, naja, OK, kann mir aber manchmal auf die Nerven gehen.
Ich erinnere mich, dass mich das schon bei einigen kurzen Exkursionen nach C++ und ActionScript geärgert hat. Haben nun erfahrene Java-Entwickler eine Abkürzung dafür?
Es scheint mir, dass technisch die Frage durch die Summe aller Beiträge als "Ja, es ist" beantwortet wurde. Ich habe unten einen Wiki-Eintrag geöffnet, um die verschiedenen alternativen Lösungen zu sammeln. Bitte trage ein wenn du magst. Ich fand alle diese sehr hilfreich als Inspiration und als Lernbeispiele für typische Java-Konstrukte.
scheint als sein Missbrauch der varargs Eigenschaft zu mir. – erikkallen
+1 zu erikkallens Kommentar. –
Ich finde varargs sind gut, wenn die Argumente in der Anzahl variieren, aber alle bedeuten das gleiche, wie mit der Liste der Namen in diesen Beispielen. Wenn die Argumente etwas anderes bedeuten, müssen Sie bald so viele Überprüfungen durchführen, dass es sauberer und leichter zu überladen ist. Recht? –