在构造函数调用期间,在某些类中,我有一个非常奇怪的变量初始化问题。
此问题发生在that project中,例如在该行上。
我尝试调试它,即使在initEntity()
方法结束时,变量pickupDelay
也有它的值,但是如果我尝试在该方法之后打印它的值,它就会神奇地为null 。如果我在构造函数调用期间尝试扩展类Entity
并初始化其字段,我会遇到类似的问题。并且代码中的任何地方都没有将变量设置为null。
这可能不会发生在静态变量上。
所以也许更好的问题是,可能导致已经初始化(最终或非最终)变量的因素被设置为null。
关于此问题的简短视频 https://youtu.be/otizERrYSVU
我的代码来测试问题:
CompoundTag itemTag = NBTIO.putItemHelper(Item.get(0));
itemTag.setName("Item");
CompoundTag nbt = new CompoundTag().putList(new ListTag<DoubleTag>("Pos").add(new DoubleTag("", 0))
.add(new DoubleTag("", 0)).add(new DoubleTag("", 0)))
.putList(new ListTag<DoubleTag>("Motion").add(new DoubleTag("", 0))
.add(new DoubleTag("", 0)).add(new DoubleTag("", 0)))
.putList(new ListTag<FloatTag>("Rotation")
.add(new FloatTag("", new java.util.Random().nextFloat() * 360))
.add(new FloatTag("", 0)))
.putShort("Health", 5).putCompound("Item", itemTag).putShort("PickupDelay", 40); //value 40
EntityItem item = new EntityItem(this.defaultLevel.getChunk(0, 0, true), nbt); //new instance
item.pickupDelay意外更改为0
答案 0 :(得分:0)
我解决了,
变量声明为
/node_modules
gen
/dist
/static/css
并且在父constrctor调用期间更改了值,因此在此之后它可能会被覆盖。