In einem Konstruktor das Object mit null initialisieren
-
Und falls du das nur als Reaktion auf Fehler machen willst, dann würde ich im Konstruktor lieber eine Exception werfen.
-
Geht so etwas? Oder ist diese Denkweise zu krank?
Die Denkweise ist zu krank. Der Konstruktor ist da, um das Objekt zu konstruieren. Wenn du schon dabei bist es zu Konstruieren ist es bereits zu spät um dann zu sagen: "Och nö, jetzt will ich doch nicht mehr."
Du musst bevor du es kreirst wissen, ob du es überhaupt kreieren willst. Es sei denn beim Kreieren tritt ein Fehler auf. Dann verwendet man natürlich Exceptions, wie Optimizer schon anmerkte.
Die Lösung findest du bei Gregor.
-
Moin Moin Leute
Ist wirklich ein wenig "krank" und schon aus dem Code entfernt. Werfe nun eine Exception wenn die Bedingung fehlschlägt.
War hauptsächlich auch nur eine Frage ob so etwas geht. Das da kein Mensch mehr durchsteigt war mich auch klar.Danke für die Antworten!
cu CodeHure
-
public class Scheisse{ private Scheisse(){} public Scheisse getInstance(String arg){ if(arg.equals("Scheisse") return new Scheisse(); return null; } }
-
Und wenn du jemals von Scheisse ableitest? Dann funktioniert da nix, weil a) entweder Scheisse keinen öffentlichen Konstruktor besitzt, oder b) der Konstruktor von Scheisse nicht in jedem Fall korrekt funktioniert -> Exceptions sind für solche Probleme besser.
-
Hmm, Scheisse.
Ich kann ja den Konstruktor protected machen, dann kann ich ja wieder ableiten.Bist du vielleicht der Beni vom java-forum.org?
Liebe Grüße
Real
-
Eine Factory-Methode sollte i.A. trotzdem nicht null liefern. Ungültige Argumente müssen mit einer Exception bestraft werden. (<- PUNKT)
Factory-Methoden sind dazu da, um verschiedene Subtypen zu kreieren.class DrinkFactory { public Drink createDrink() { ... return new Cocktail(); ... return new Beer(); ... return new Whiskey(); } }
-
Optimizer schrieb:
Factory-Methoden sind dazu da, um verschiedene Subtypen zu kreieren.
...und für diverse weitere Dinge.
-
Optimizer schrieb:
Eine Factory-Methode sollte i.A. trotzdem nicht null liefern. Ungültige Argumente müssen mit einer Exception bestraft werden. (<- PUNKT)
Factory-Methoden sind dazu da, um verschiedene Subtypen zu kreieren.Dann würde ich deinen Tipp auch mal umsetzen.
class DrinkFactory { public Drink createDrink() { ... return new Cocktail(); ... return new Beer(); ... return new Whiskey(); throw new IllegalArgumentException("Illegales Argument"); } }
-
-