我已阅读有关 Java 枚举的内容并经常使用它们。但是,我不明白为什么例如 JFrame.EXIT_ON_CLOSE
返回 int
。
考虑http://download.oracle.com/javase/1.5.0/docs/guide/language/enums.html ;
// int Enum Pattern - has severe problems!
public static final int SEASON_WINTER = 0;
public static final int SEASON_SPRING = 1;
public static final int SEASON_SUMMER = 2;
public static final int SEASON_FALL = 3;
类型不安全 - 由于季节只是一个整数,您可以在需要季节的地方传递任何其他整数值,或者将两个季节相加(这没有意义)。
JFrame.EXIT_ON_CLOSE
返回3,而JFrame.HIDE_ON_CLOSE
返回1,也就是后面三个等于第一个。
为什么要这样实现?
最佳答案
Java 没有枚举 until 1.5 - 这些常量中的大部分都是较早引入的,如果将它们更改为枚举,Sun 会破坏很多现有代码。
关于java - 为什么Java中的常量是这样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5766499/