java声明无值常量
如果我声明一个像static final double PI;
这样的常量,我将得到The blank final field PI may not have been initialized
错误。为什么我不能先这样声明它,然后再初始化它
更新:我可能不知道初始常量值,必须在一些逻辑之后对其进行初始化,以便为其提供一个值。这就是我以后需要初始化它的原因
你可以在下面搜索框中键入要查询的问题!
如果我声明一个像static final double PI;
这样的常量,我将得到The blank final field PI may not have been initialized
错误。为什么我不能先这样声明它,然后再初始化它
更新:我可能不知道初始常量值,必须在一些逻辑之后对其进行初始化,以便为其提供一个值。这就是我以后需要初始化它的原因
# 1 楼答案
Java必须确保最后一个字段只初始化一次,并且永远不会更改。这只能在初始化期间发生
# 2 楼答案
我想你必须初始化第一个值来解决这个问题
我能解决你的问题
# 3 楼答案
您可以稍后在代码中对其进行初始化。您只需在使用它之前初始化它
它不是一次写入内存,在设置值之前读取不会阻塞
# 4 楼答案
因为常数一旦分配就不能更改。:)
# 5 楼答案
因为它不是常数,因为您可以在程序的不同位置更改它的值
# 6 楼答案
变量被声明为静态意味着,当类被加载到内存中时,所有静态变量也被加载到内存中。除此之外,这个变量是final,意味着它在类加载时必须是某个值。在非静态代码块中初始化它意味着将其值从零(null)更改为新分配的值
通过这个示例可以看出,即使并没有初始化静态final变量,也可以在类的静态块中进行初始化