不可能的空指针

Udi*_*Udi -5 java nullpointerexception

我有一个非常奇怪的问题.(非常重要的说明:这是一个例子,因为我无法粘贴原始代码,我将其编写为没有编译器的文本.)我有2个类:

class B {
    private int num = 9;

    public int getNum(){
       return num;
    }

    public void setNum(int num){
       this.num = num;
    }
}

class A {
    private B b = new B();

    public void setB(B b){
        b.setNum(b != null? b.getNum() : 8);
   }

   public B getB(){
       if (b == null)
           System.out.println("How possible?");
       return b;
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,有时我会得到印刷品......但我不知道这是怎么回事.

A是一个序列化的类,但我无法弄明白.

dav*_*420 5

这是不可能的,不.A.getB()当你尝试编译它时,你会得到一个类型错误,你的定义A.setB()看起来也很可疑(阴影b).