简体   繁体   English

静态变量初始化java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM