![]() |
1
24
它更好,因为它为您提供了类型安全性和自我记录功能。对于整型常量,您必须查看api文档以了解哪些值是有效的,并且没有什么可以阻止您使用无效的值(或者更糟的是,完全不相关的整型常量)。对于枚举,方法签名直接告诉您哪些值是有效的(IDE自动完成将起作用),并且不可能使用无效的值。 不幸的是,“整数常数枚举”模式非常常见,即使在Java标准API中(也从那里广泛复制),因为Java在Java 5之前没有Enums。 |
![]() |
2
8
从官方文件中摘录, http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html :
这就足以说明问题了。一个词的论点是,枚举只是更可读和信息量。 还有一件事就是枚举,比如类。可以有字段和方法。这使您可以选择包含有关枚举本身中每种状态类型的一些附加信息。 |
![]() |
3
7
因为枚举提供类型安全性。在第一种情况下,可以传递任何整数,如果使用枚举,则限制为
FY: http://www.javapractices.com/topic/TopicAction.do?Id=1 . |
![]() |
4
5
通过使用
使用一个
|
![]() |
5
1
在一种情况下,静态常量是首选的(而代码是具有大量依赖性的遗留代码),也就是说,该值的成员不是/以后可能不是有限的。
想象一下,如果您以后可以添加新的状态
只是我的想法。 |
![]() |
6
1
|
![]() |
7
1
从Josh Bloch的有效Java项目30中更详细地解释了规范的原因,即Lajik引号。如果你能读到那本书,我建议你仔细阅读。Java枚举是完全成熟的类,这就是为什么您可以获得编译时类型安全性的原因。您还可以为它们提供行为,从而提供更好的封装。 |
![]() |
8
0
前者在1.5之前的代码中很常见。实际上,另一个常见的习惯用法是在接口中定义常量,因为它们没有任何代码。 |
![]() |
9
0
Enums还为您提供了很大的灵活性。由于枚举本质上是类,因此可以使用有用的方法对其进行扩充(例如,提供与枚举中的某个值对应的国际化资源字符串,在枚举类型实例和可能需要的其他表示形式之间来回转换等)。 |
![]() |
DarkLite1 · 在提升模式下使用多个命名参数调用脚本 7 年前 |
![]() |
Micolho · execute或字符串%s传递的查询参数之间的差异 7 年前 |
![]() |
Rohit Kumar · 扩展类时构造函数出错 7 年前 |
|
user9489003 · ruby中proc的参数 7 年前 |
![]() |
O.rka · 使用参数[重复]创建bash函数时出现语法错误 7 年前 |