Bài viết phổ biến của tác giả
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
本文来自 Effective Java
Programs that use the int enum pattern are brittle. Because int enums are compile-time constants, they are compiled into the clients that use them.
谁能解释一下为什么 int 枚举模式被称为编译类型常量以及编译到客户端Nó có nghĩa là gì?
这是一个这样的常量的例子:
public static final int APPLE_FUJI = 0;
câu trả lời hay nhất
假设你有两个文件:
Foo.java:
public class Foo
{
public static final int SOMETHING = 1;
}
Bar.java:
public class Bar
{
public static void main(String[] args)
{
System.out.println(Foo.SOMETHING);
}
}
编译它们,运行java Bar
,它会打印出1。
现在更改 Foo.java,使 SOMETHING
为 2,然后重新编译 just Foo.java。重新运行 java Bar
,它将仍然打印 1。常量值将被复制到使用它的每一段代码,而不是从 Foo 中请求值
在执行时。
在实践中,nếu như您在有任何更改时重新编译所有内容,这不是问题。
关于java - 说 int 枚举模式是编译时常量是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11773441/
Tôi là một lập trình viên xuất sắc, rất giỏi!