性别枚举有多少种

三月 15th, 2010 发表评论 阅读评论

Java中的枚举类型,从表现形式上来看,好像就是一个类,而其中含有几个static的变量,并且由于它的构造方法是私有的,所有在类的外部不能构造新的对象。先来看看以下代码.

按需求的来说,性别的取值就是“男”、“女”,但我觉得写得这么死不太好,如果哪天客户说要增加一个新的性别选择,那又要改源代码,那还是要添加进来。因此,基于可扩展性的考虑,我写出了以下的枚举类型。
枚举类型在使用上还是有不少好处的,如果按不是的话,对于新手来说,我们可能使用字符串“0”、“1”...或者一些有意义的字符串如“MALE","FEMAL","M","F"等等来代替参数,但这样如果使用的人多了,就比较难协调一致了,因此如果大家都只使用枚举类里指定的几种类型,而且很方便的获得它的中文别名,是不是感觉良好呢。

package test;

/**
 * 性别类型,包括男、女、其他
 *
 * @author Keengle 2009-12-31
 *
 */
public enum SexType {

 /**
  * 男
  */
 S_MALE("男"),
 /**
  * 女
  */
 S_FEMALE("女"),
 /**
  * 其他
  */
 S_OTHER("其他");

 private SexType(String alias) {
  this.alias = alias;
 }

 private String alias;

 /**
  * 判断枚举是否在所列的枚举值中
  *
  * @param flag
  * @return
  */
 public boolean in(SexType... flag) {
  Assert.notNull(flag, "必须至少存在一个枚举值");
  for (int i = 0; i < flag.length; i++) {
   if (this == flag[i]) {
    return true;
   }
  }
  return false;
 }

 public String getAlias() {
  return alias;
 }
 
 public String getSexAlias() {
  return alias;
 }
}

对于上面的这个例子,如果我们enum改为class,再把其中的3个枚举实例加个public static来限定,在使用方面是不是跟原来的enum一样啦。因为其构造方法是私有的,所有在类的外面是不能再创建新的对象,只能继续使用这原有的类实例了。

 

分类: 技术笔记 标签: 枚举  性别  java  (1503次阅读)

  1. cat
    2010-03-17 at 14:00
    慢慢看 沙发
  2. 2010-03-21 at 00:06
    大神,麻烦问一下,我的博客为什么的验证码怎么也显示不出来呢?我是个初学者,麻烦指点迷津!
  3. 2010-04-04 at 10:57
    终于能上你的网站了,呵呵,原来一直访问不了代理提示dns错误
  4. 2010-05-14 at 14:28
    牛逼。
  5. 2010-07-22 at 15:44
    很厉害哦
  6. 2010-08-20 at 23:37
    恩·····貌似感觉对你说的办法感觉良好,呵呵
  7. 2010-09-21 at 15:17
    好像有些时日没更新了!
  8. 2010-09-21 at 15:18
    今天真倒霉,被修电动车的人宰,哎防不胜防
  9. 2010-09-21 at 15:19
    一看就是学数学的哥!
  10. 2010-10-31 at 19:24
    只学过c的飘过。。
  11. 2010-12-02 at 21:25
    头有点晕晕的,呵呵