锁定老帖子 主题:神奇的java枚举
精华帖 (0) :: 良好帖 (3) :: 新手帖 (12) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-15
大部分场景字符串就够了 —— 直白不折腾、读程序一看就懂。
性能关键的地方,不如用整数位运算。 所以枚举基本没用 …… scala 就没有枚举。 我觉得这是基于人性本恶假定的设计 —— 程序员很坏,一定会想办法写错,能做成选择题就不做成填空题。这种限定设计有时可以提高代码安全,但有时也会让人很不爽,结果就是反而降低了开发效率和代码质量。 |
|
返回顶楼 | |
发表时间:2009-10-16
java枚举虽然不完美,但还是很有用的,而且在保存数据库方面JPA 或 Hibernate都有内建的支持,不存在什么只会保存 0,1,2,3...等的情况,当然除非你本来就想要这样保存。而且应该用得也比较广了吧,至少这两年在我做的项目中,能够用的地方全都用了,而且是要求必须用。
|
|
返回顶楼 | |
发表时间:2009-10-16
java枚举就是个类。
不是语言本身实现的,而是编译器实现的。 |
|
返回顶楼 | |
发表时间:2009-10-16
枚举我都是用于约束或者用到switch的时候定义的。
特别是switch,不过JDK7支持字符串的switch了,使用switch的时候就不用枚举了,呵呵。 |
|
返回顶楼 | |
发表时间:2009-10-16
还是比较喜欢使用枚举的,感觉枚举分类比较清晰,更符合OO设计,呵呵
|
|
返回顶楼 | |
发表时间:2009-10-16
最后修改:2009-10-16
liugh1974 写道 java枚举虽然不完美,但还是很有用的,而且在保存数据库方面JPA 或 Hibernate都有内建的支持,不存在什么只会保存 0,1,2,3...等的情况,当然除非你本来就想要这样保存。而且应该用得也比较广了吧,至少这两年在我做的项目中,能够用的地方全都用了,而且是要求必须用。
我觉得比较好的方式是:代码里面是enum,不容易写错,数据库里面存储int/smallint之类的,可以按照enum条件查询,速度快。 不过Java的enum里面搞了很多class级别的东西,仅仅存储一个int序号很多时候根本没法顺利还原。如果要做成int条件查询的效果,就要限制enum的实现,白白增加程序员写代码时候的风险,不如语言上直接设计的简单点完了。现有enum的需求,用class就很好,两个东西很多地方都重了。 |
|
返回顶楼 | |
发表时间:2009-10-16
star022 写道 myreligion 写道 enum就是一个废品!还不如简单的做成像C那样的实用,想ORM存储到数据库都困难,变态的SUN公司。。。
enum是一种比较固定的有限枚举,算是一种类型的数据结构, 这种结构的数据有什么业务场景需要存入数据库吗? 小弟,将自己的知识面扩充一下吧。 看看.net里面的枚举是运用得多么的充分。 |
|
返回顶楼 | |
发表时间:2009-10-16
从一开始学习java就知道枚举了,一直到工作2年,居然还是对枚举的概念很模糊.因为从来都没用到他.
|
|
返回顶楼 | |
发表时间:2009-10-16
night_stalker 写道 大部分场景字符串就够了 —— 直白不折腾、读程序一看就懂。
性能关键的地方,不如用整数位运算。 所以枚举基本没用 …… scala 就没有枚举。 我觉得这是基于人性本恶假定的设计 —— 程序员很坏,一定会想办法写错,能做成选择题就不做成填空题。这种限定设计有时可以提高代码安全,但有时也会让人很不爽,结果就是反而降低了开发效率和代码质量。 Scala没有枚举,不过,好像有case class吧? |
|
返回顶楼 | |
发表时间:2009-10-16
myreligion 写道 enum就是一个废品!还不如简单的做成像C那样的实用,想ORM存储到数据库都困难,变态的SUN公司。。。
无知者无畏 @Enumrated(String) private EnumType enumType; |
|
返回顶楼 | |