2012-01-30 42 views
0

我有一套常量。枚举将是定义常量组的最佳选择.even我们可以在java类中定义所有常量。两者的优点和缺点是什么?我的意思是哪一个更有优势?请帮帮我。java枚举或类常数很少。哪一个是有利的?

谢谢!

+0

如果你能举一个具体的例子,这将有所帮助。 – 2012-01-30 17:11:55

回答

1

我会去enum。枚举给你几乎与类相同的灵活性(毕竟,枚举是一个类!),所以你可以按照你的意愿声明字段,方法和构造函数。忘了继承,但嘿 - 你应该偏向于继承两种方式组成;)

枚举也给你,没有任何喧嚣几个很酷的功能:

  1. 类型安全
  2. 线程
  3. 你可以使用它在switchfor-loop陈述
  4. 你有一个整洁的API来处理常量定义(如valueOf(String)

我建议有“由乔希布洛赫有效的Java”一看,你会惊奇地发现他们真正的工具有多么强大。

+0

:谢谢你的回复。如果我使用枚举可以实现继承吗?谢谢! – user1016403 2012-01-30 17:26:23

+0

不可以。不能继承枚举,因为它被声明为final类。如果您仔细考虑,实际上并不需要这么做,因为它可能会给代码添加一些不必要的复杂性,这可能会破坏客户端。说实话,我从来没有发现自己也处于一个我需要这样做的场景中。坚持原始枚举,你会很好:) – 2012-01-30 17:38:17

+0

@Bachman:谢谢你的回复。枚举是可序列化的。如果我在一个类中声明了所有的常量,它是可序列化的吗?请帮帮我? – user1016403 2012-01-30 17:46:00

3

相关常量的枚举最好表示为enum

如果常量不共享一个共同的特征,但是多样化,那么不要使用枚举。

3

枚举:

  • 由于Java 1.5
  • 类型安全
  • 您可以通过所有的定义值迭代
  • 每个常量可以有更多的属性 - 简单写

静态字段:

  • 作品在所有的Java版本