gpt4 book ai didi

Java - 总是0?

转载 作者:行者123 更新时间:2023-12-01 07:55:30 24 4
gpt4 key购买 nike

我有一个普通的Java代码,它只计算x坐标,但它只是0;

private static final int startX = (Level.WIDTH / 2) - (Block.LENGTH * (Level.COLUMNS / 2));

计算时:

Level.WIDTH = 1000;
Block.LENGTH = 41;
Level.COLUMNS = 12;

根据我的计算,它必须是254,但它始终是0。有人知道我的错误吗?

最佳答案

private static final int startX = (Level.WIDTH / 2) - (Block.LENGTH * (Level.COLUMNS / 2));

当该变量所属的类初始化时,该变量将被计算一次。发生这种情况时,它所依赖的变量(Level.WIDTHBlock.LENGTHLevel.COLUMNS)可能仍包含 0 .

当声明一个最终变量,其值取决于其他变量的值时,这些变量也应该是最终的,并且在依赖它们的变量之前初始化。

这不是强制性的,但否则您的代码将没有多大意义,因为例如在初始化 startX 后更改 Level.COLUMNS 的值将不会发生”不要更改 startX 的值,因此它看起来会持有不一致的值。

关于Java - 总是0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30680541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com