java - 最终变量的可访问性

标签 java static final

为什么不能在静态变量中访问 Final 变量。 在编译时,它们只是简单地替换为直接替换为它们的值 因此,即使在静态方法中也应该允许使用它们

为什么有这个限制???

最佳答案

静态 = 在类中。

final = 不会改变它的值(但如果它不是静态的,它就是每个实例的值)。

例如,您可以这样做:

public class Weird
{
private static long number = System.getTimeInMilis();
private final long created = System.getTimeInMilis();
}

每次创建 Weird 对象时,它都会包含不同的创建值。

但是 Weird.number 的值将是类加载的时间。

关于java - 最终变量的可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2059773/

相关文章:

java - 扫描仪只读取文件名,没有别的

java - 在错误的位置绘制文本

java - 使用输入流从 XML 文件读取属性?

java - 行为差异 : 'null' initialized final static member, 和 'null' 初始化最终局部变量

Java 组合框错误

java - 如何防止有人从 JSP/Servlet 中的浏览器修改输入表单参数

java - 重载 Math.sqrt : overloading method seems to hide the original one

c - 返回指向静态局部变量的指针安全吗?

java - 使用方法分配 Final 关键字

java - transient 如何在序列化 Java 中与 final 一起工作