Java enums over Constants
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Understanding Enums in Java
为什么我们要使用枚举而不是Java常量?
我读过Java枚举提供类型安全性。有人能详细说明一下吗?或者使用枚举比使用常量有其他优势?
浸出率docs.oracle.com http://////javaoo JavaSE教程:Java / enum.html
1 2 3 4 | public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } |
当你有这个方法:
1 2 3 | public EnumTest(Day day) { this.day = day; } |
你知道,争论总是去的一天。
本:比较
1 2 3 4 5 | const int MONDAY = 1; const int TUESDAY = 2; const int CAT = 100; const int DOG = 101; |
你可以通什么本法:
1 2 3 | public EnumTest(int day) { this.day = day; } |
使用枚举是一个合同之间的代码和代码的电话被称为一个给定的值是有一个给定的类型。
南通:你有动物形象
1 2 3 4 5 | int DOG = 1; int CAT = 2; int COW = 3; |
和一个变量:
1 | int animal; |
它是好的,你有3只经营论文数。但如果你是错误的,那么编译器可以检查你,如果你写的
1 | animal = 5; |
你不要错误的两个湖泊。枚举提供你一个更好的方法。
1 2 3 4 5 6 7 8 9 10 11 | public enum Animal { Dog, Cat, Cow } Animal animal = Animal.Dog; |
现在你有类型安全。
另一个是枚举,但unmentioned差分逻辑里面有他们的CAN,CAN和方法,即一个ctor。
一种安全的原因(除了已经提到)是有意义的代码枚举的方法,让使用的常数可以migrate重金属的枚举类本身(无论是动态或静态方法)。