comment initialiser un membre statique privé d'une classe en Java.
essayer ce qui suit:
public class A {
private static B b = null;
public A() {
if (b == null)
b = new B();
}
void f1() {
b.func();
}
}
mais en créant un deuxième objet de la classe A puis en appelant f1 (), j'obtiens une exception de pointeur nul.
Les moyens préférés pour initialiser les membres statiques sont soit (comme mentionné précédemment)
private static final B a = new B(); // consider making it final too
ou pour un code d'initialisation plus complexe, vous pouvez utiliser un bloc d'initialisation statique:
private static final B a;
static {
a = new B();
}
Votre code devrait fonctionner. Êtes-vous sûr de publier votre code exact?
Vous pouvez également l'initialiser plus directement:
public class A {
private static B b = new B();
A() {
}
void f1() {
b.func();
}
}