从内部 class 读取父 class 成员获取旧值

read parent class members from inner class get old values

我有一个简单的内部 class 声明为 private class ColumnResolver 在父 class 中实例化,就像 private final ColumnResolver columnResolver = new ColumnResolver();

当我从外部 class 从内部 class (OuterClass.this.InnerClass) 访问成员时,成员有错误的值。

我希望有 3 和 8,而不是图片中看到的 0 和 0。

没有涉及到多线程,我不明白这是怎么回事...

另外,thisthis[=16=] 好像引用的不是同一个对象? (不一样的id)。

这就像 VM 将克隆的对象分配给 this[=16=] 而不是实际的父 class 实例。

这可能是什么原因造成的?

$ java -version
openjdk version "11.0.14" 2022-01-18 LTS
OpenJDK Runtime Environment SapMachine (build 11.0.14+9-LTS-sapmachine)         
OpenJDK 64-Bit Server VM SapMachine (build 11.0.14+9-LTS-sapmachine, mixed mode)

我发现 Mockito 搞砸了。

这就是为什么我有不同的内部和外部实例 class。

当我用 spy() 包装外部 class 时,它把事情搞砸了,而内部 class reads/writes 来自某个克隆对象...