使用枚举是否会降低应用程序的可移植性?

时间:2011-07-07 18:20:25

标签: java enums

我知道这个问题听起来很奇怪,但这就是我的经理告诉我的。当我提出一个使用enum的新设计时,他说, “不,......” ,然后继续制作一个随意的评论说,使用这样的构造实际上使应用程序 “不那么便携”

这是真的吗?我怀疑它不是。

4 个答案:

答案 0 :(得分:4)

你应该向他询问我的详细信息......这确实意味着你无法在Java 1.4或更早版本中编译代码,但这并不是一个非常好的理由。

听起来你的经理可能会感到困惑......但是你应该总是按压细节。

答案 1 :(得分:1)

应用程序是否与其他编程语言交互,即通过API?这是唯一可以让我想象枚举会导致问题的感觉。否则,它在大多数语言中只是一个整数/长整数,并提供额外的编译时安全检查层,只能使您的程序更健壮。

答案 2 :(得分:1)

除非您的经理想要使用JDK 1.4及以下版本保持可移植性,否则他就错了。因为它是Java语言的一部分,所以枚举中没有任何东西是不可移植的。他能阐述他的观点吗?

答案 3 :(得分:0)

枚举时会想到两个问题。

首先是版本可移植性。自从5.0版(又名1.5版)以来,'enums'一直使用java。因此,如果他有兴趣保持与旧系统的向后兼容性,这可能是一个值得关注的问题(http://en.wikipedia.org/wiki/Java_version_history#J2SE_1.4_.28February_6.2C_2002.29)。

有时出现的另一个问题是如何序列化/存储枚举。枚举通常作为一些索引存储在内存中,该索引由编译器翻译,与实际字符串几乎没有关系。这对于程序性能非常有用,如果您永远不需要保存/存储/共享枚举,这通常很好。但是,当您尝试将其序列化/存储到数据库以供其他人阅读时,它会导致很多麻烦。