javaでクラスのプライベート静的メンバーを初期化する方法。
以下を試してください:
public class A {
private static B b = null;
public A() {
if (b == null)
b = new B();
}
void f1() {
b.func();
}
}
しかし、クラスAの2番目のオブジェクトを作成してからf1()を呼び出すと、nullポインター例外が発生します。
静的メンバーを初期化する好ましい方法は次のいずれかです(前述のとおり)
private static final B a = new B(); // consider making it final too
または、より複雑な初期化コードには、静的初期化ブロックを使用できます。
private static final B a;
static {
a = new B();
}
コードが機能するはずです。正確なコードを投稿しますか?
より直接初期化することもできます:
public class A {
private static B b = new B();
A() {
}
void f1() {
b.func();
}
}