[英]static variable initialization java
how to initialize a private static member of a class in java. 如何在java中初始化类的私有静态成员。
trying the following: 尝试以下方法:
public class A {
private static B b = null;
public A() {
if (b == null)
b = new B();
}
void f1() {
b.func();
}
}
but on creating a second object of the class A and then calling f1(), i get a null pointer exception. 但是在创建类A的第二个对象然后调用f1()时,我得到一个空指针异常。
The preferred ways to initialize static members are either (as mentioned before) 初始化静态成员的首选方法是(如前所述)
private static final B a = new B(); // consider making it final too
or for more complex initialization code you could use a static initializer block: 或者对于更复杂的初始化代码,您可以使用静态初始化程序块:
private static final B a;
static {
a = new B();
}
Your code should work. 你的代码应该有效。 Are you sure you are posting your exact code?
您确定要发布确切的代码吗?
You could also initialize it more directly : 您还可以直接初始化它:
public class A {
private static B b = new B();
A() {
}
void f1() {
b.func();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.