论坛首页 Java企业应用论坛

神奇的java枚举

浏览 18711 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (12) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-10-15  
大部分场景字符串就够了 —— 直白不折腾、读程序一看就懂。
性能关键的地方,不如用整数位运算。

所以枚举基本没用 …… scala 就没有枚举。

我觉得这是基于人性本恶假定的设计 —— 程序员很坏,一定会想办法写错,能做成选择题就不做成填空题。这种限定设计有时可以提高代码安全,但有时也会让人很不爽,结果就是反而降低了开发效率和代码质量。
0 请登录后投票
   发表时间:2009-10-16  
java枚举虽然不完美,但还是很有用的,而且在保存数据库方面JPA 或 Hibernate都有内建的支持,不存在什么只会保存 0,1,2,3...等的情况,当然除非你本来就想要这样保存。而且应该用得也比较广了吧,至少这两年在我做的项目中,能够用的地方全都用了,而且是要求必须用。
0 请登录后投票
   发表时间:2009-10-16  
java枚举就是个类。

不是语言本身实现的,而是编译器实现的。
0 请登录后投票
   发表时间:2009-10-16  
枚举我都是用于约束或者用到switch的时候定义的。
特别是switch,不过JDK7支持字符串的switch了,使用switch的时候就不用枚举了,呵呵。
0 请登录后投票
   发表时间:2009-10-16  
还是比较喜欢使用枚举的,感觉枚举分类比较清晰,更符合OO设计,呵呵
0 请登录后投票
   发表时间: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就很好,两个东西很多地方都重了。
0 请登录后投票
   发表时间:2009-10-16  
star022 写道
myreligion 写道
enum就是一个废品!还不如简单的做成像C那样的实用,想ORM存储到数据库都困难,变态的SUN公司。。。


enum是一种比较固定的有限枚举,算是一种类型的数据结构,
这种结构的数据有什么业务场景需要存入数据库吗?

小弟,将自己的知识面扩充一下吧。
看看.net里面的枚举是运用得多么的充分。
0 请登录后投票
   发表时间:2009-10-16  
从一开始学习java就知道枚举了,一直到工作2年,居然还是对枚举的概念很模糊.因为从来都没用到他.
0 请登录后投票
   发表时间:2009-10-16  
night_stalker 写道
大部分场景字符串就够了 —— 直白不折腾、读程序一看就懂。
性能关键的地方,不如用整数位运算。

所以枚举基本没用 …… scala 就没有枚举。

我觉得这是基于人性本恶假定的设计 —— 程序员很坏,一定会想办法写错,能做成选择题就不做成填空题。这种限定设计有时可以提高代码安全,但有时也会让人很不爽,结果就是反而降低了开发效率和代码质量。


Scala没有枚举,不过,好像有case class吧?
0 请登录后投票
   发表时间:2009-10-16  
myreligion 写道
enum就是一个废品!还不如简单的做成像C那样的实用,想ORM存储到数据库都困难,变态的SUN公司。。。



无知者无畏

@Enumrated(String)
private EnumType enumType;
6 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics