JDK5.0新特性之:枚举

文/陈刚 2005-11-09 

一、前言

  JDK5.0出来有快一年了吧,泛泛的浏览过一些资料,不知道是文章写得生涩,还是我愚笨,总之是没太明白。反正所做的项目也没有用到,所以放在了一边。近来公司平台升级到JBOSS4和JDK5,看来要仔佃看它一看看。上网搜索了一些资料,花了两小时阅读,算明白了一些,好象也不是很难。现将心得和理解结集成文,以便后来者。

  JDK5.0主要有哪些新特性呢?如下列表

  • 泛型
  • 增强的for循环
  • 自动装箱和自动拆箱
  • 类型安全的枚举
  • 可变长度参数
  • 静态引入
  • 元数据(注解)
  • C风格的格式化输出

  本文先讲“类型安全的枚举”。

二、旧的历史

  举个例:有一个如下的“花(flower)”类,它有一个颜色(color)属性,用int型来表示其颜色。

public class Flower {
    private int color;
    public void setColor(int color) {
        this.color = color;
    }
   
    public int getColor(){
        return color;
    }
}

  这时一般我们会创建一个常量类,来存放颜色常量,如下:

public interface Color {
    int RED = 0;
    int BLACK = 1;
    int YELLOW = 2;
    int BLUE = 3;
    int WHITE = 4;
    int ORANGE = 5;
}

  以后我们用的时候就可以这样:

public class Client {
    public static void main(String[] args) {
        Flower f = new Flower();
        f.setColor(Color.RED);
    }
}

  Color类就是一个我们自己来实现的枚举类,当然它并不是严格意义上的枚举类,而且JDK5.0之前还没有枚举。这时会出现一个问题:setColor参数是int型,那么也许用户会不小心用一个非法的int值赋进去,这样就可能产生BUG,如:f.setColor(100);显示100并非是我们设定中的颜色值。

  在那本有名的java著作<<Effective java>> Joshua Bloch,用了专门的一章(第5章)来讨论这

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值