|
|
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还为您提供了很大的灵活性。由于枚举本质上是类,因此可以使用有用的方法对其进行扩充(例如,提供与枚举中的某个值对应的国际化资源字符串,在枚举类型实例和可能需要的其他表示形式之间来回转换等)。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |