快速业务通道

在Eclipse 3.1中体验J2SE 5.0的新特性: 第一部分 :枚举类型 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
.EnumMap 类提供了 java.util.Map 接口的一个特殊实现,该接口中的键(key)是一个枚举类型.

清单 11:. EnumMap 例子

public void test() throws IOException {    EnumMap<Priority, String> descriptionMessages =         new EnumMap< Priority, String>( Priority.class);     descriptionMessages.put(Priority.High,  "High means ...");       descriptionMessages.put(Priority.Medium, " Medium represents...");        descriptionMessages.put(Priority.Low, " Low means...");    for (Priority p : Priority.values( ) ) {       System.out.println("For priority " + p + ", decription is: " +              descriptionMessages.get(p));    } }

在Eclipse 3.1中体验J2SE 5.0的新特性: 第一部分 :枚举类型(6)

时间:2011-04-02 IBM 邹青 吴嫣 吴疆

EnumSet 类提供了 java.util.Set 接口的实现,该接口保存了某种枚举类型的值的集 合.EnumSet的作用类似于特性的集合,或者类似于某个枚举类型的所有元素的值的子 集.EnumSet 类拥有一系列的静态方法,可以用这些方法从枚举类型中获取单个元素或某 些元素, 下面的程序例子显示如何这些静态方法:

清单 12:.EnumSet 例子

public class TestEnumSet {    public enum ColorFeature {       RED,BLUE, GREEN, YELLOW,BLACK     } ;    public static void main(String[] args) {    EnumSet allFeatures = EnumSet.allOf(ColorFeature.class);    EnumSet warmColorFeatures = EnumSet.of(ColorFeature.RED,                     ColorFeature.YELLOW);    EnumSet non_warmColorFeatures = EnumSet.complementOf (warmColorFeatures);      EnumSet notBlack = EnumSet.range(ColorFeature.RED, ColorFeature.YELLOW);      for (ColorFeature cf : ColorFeature.values()){        if (warmColorFeatures.contains(cf)) {          System.out.println("warmColor "+cf.name());        }        if (non_warmColorFeatures.contains(cf)) {          System.out.println("non_WarmColor "+cf.name());        }      }    } }

我们在Eclipse3.1环境中运行上面的程序,结果如下图:

图8: EnumSet 样例运行结果

在Eclipse 3.1中体验J2SE 5.0的新特性: 第一部分 :枚举类型 - 编程入门网

1.3.4 枚举类型的函数定义

在介绍创建枚举类型中曾提到枚举类型都是java.lang.Enum的子类. 也就是说, 枚举 类型都是可编译的Java 的类,那么就可以在枚举类型里添加构造函数和其它函数,如清 单13里的getDescription()

清单 13:

public enum ColorFeature {   RED(0),   BLUE(0),   GREEN(300),   YELLOW(0),   BLACK(0);     /** The degree for each kind of color*/     private int degree;     ColorFeatures(int degree) {       this.degree = degree;     }     public int getDegree( ) {        return degree;     }      public String getDescription( ) {        switch(this) { case RED:    return "the color is red"; case BLUE:   return "the color is blue";        case GREEN:   return "the color is green";          case BLACK:   return "the color is black";          case YELLOW:  return "the color is yellow"      

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号