Hallo,
ich hab mal eine Frage zu statischen Konstanten.
Nehmen wir an ich möchte sowas erzeugen:
Das Problem hierbei ist das der Konstruktor von B eine Exception werfen kann. Somit fällt die Möglichkeit b einfach per
zu initialisieren schonmal weg.
Wenn ich b im static Block initialisiere kann ich zwar ein try/catch drum rum bauen, dann kriege ich aber mit dem Schlüsselwort final Probleme. Wenn im Konstruktor von B eine Exception geworfen wird kann ich im catch oder finally Block b keinen anderen Wert mehr zuweisen.
Da direkt eine Frage: Was für einen Wert hat b wenn der Konstruktor von B mit einer Exception beendet wird?
Eigentlich stellt das ganze kein Problem dar da ich "final" hierbei nicht wirklich benötige und einfach darauf verzichten könnte. Ich wüsste aber trotzdem gerne ob man das Problem irgendwie lösen kann.
mfg disruptor
ich hab mal eine Frage zu statischen Konstanten.
Nehmen wir an ich möchte sowas erzeugen:
Code:
public class B {
..
}
public class A {
private static final B b;
}
Das Problem hierbei ist das der Konstruktor von B eine Exception werfen kann. Somit fällt die Möglichkeit b einfach per
Code:
private static final B b = new B(...);
Wenn ich b im static Block initialisiere kann ich zwar ein try/catch drum rum bauen, dann kriege ich aber mit dem Schlüsselwort final Probleme. Wenn im Konstruktor von B eine Exception geworfen wird kann ich im catch oder finally Block b keinen anderen Wert mehr zuweisen.
Da direkt eine Frage: Was für einen Wert hat b wenn der Konstruktor von B mit einer Exception beendet wird?
Eigentlich stellt das ganze kein Problem dar da ich "final" hierbei nicht wirklich benötige und einfach darauf verzichten könnte. Ich wüsste aber trotzdem gerne ob man das Problem irgendwie lösen kann.
mfg disruptor