【问题标题】:Why static reference of a class giving Null Pointer Exception为什么类的静态引用给出空指针异常
【发布时间】:2014-02-18 07:56:06
【问题描述】:

这里我有两节课。当我尝试使用静态引用访问 A 类的方法时,它给出了 Null 指针异常。为什么会这样??

A.Java

public class A{
  int a;
  public void getA(){
    a=11;
    System.out.println("a"+a);
  }
}

C.java

public class C{
  static A ref;
  public static void main(String args[]){
    ref.getA();
}
}

问题出现在我执行 C 时。

【问题讨论】:

  • 你永远不会为 A 创建实例
  • 您应该阅读有关如何使用“静态”的更多信息。简单地说“静态 A ref”并不意味着您可以以静态方式访问 A。
  • static 这里的意思是,你可以在没有C 实例的情况下到达ref(即你可以写C.ref 而不是new C().ref。这并不意味着ref 自动引用 A 的一个实例。

标签: java oop


【解决方案1】:
static A ref;

这与static 关键字无关。你没有初始化A,对象的默认值是null,所以你实际上是在写:

ref.getA();

【讨论】:

    【解决方案2】:

    因为你还没有实例化 Object ref

    你需要做的

    A ref = new A ();
    

    【讨论】:

      猜你喜欢
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 2014-07-19
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多