从内部 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。
没有涉及到多线程,我不明白这是怎么回事...
另外,this
和 this[=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 来自某个克隆对象...
我有一个简单的内部 class 声明为 private class ColumnResolver
在父 class 中实例化,就像 private final ColumnResolver columnResolver = new ColumnResolver();
当我从外部 class 从内部 class (OuterClass.this.InnerClass) 访问成员时,成员有错误的值。
我希望有 3 和 8,而不是图片中看到的 0 和 0。
没有涉及到多线程,我不明白这是怎么回事...
另外,this
和 this[=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 来自某个克隆对象...