没有合适的资源?快使用搜索试试~ 我知道了~
Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方 enum Season { SPRING, SUMMER, AUTUMN, WINTER } 定义了一个季节枚举类型。 在本例中,对于Season.SPRING这个对象,Season.SPRING.name()能够得到该对象的字符串,即“SPRING”;反之,由Season.valueOf(“SPRING”)则能够得到该对象,即Season.SPRING。也是说,使用name()方法和valueOf(String)方法能够在枚举类型对象和字符串之间方便得转换。当然,假设valu
资源推荐
资源详情
资源评论
Java中怎样由枚举常量的中怎样由枚举常量的ordinal值获得枚举常量对象值获得枚举常量对象
Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方
enum Season {
SPRING, SUMMER, AUTUMN, WINTER
}
定义了一个季节枚举类型。
在本例中,对于Season.SPRING这个对象,Season.SPRING.name()能够得到该对象的字符串,即“SPRING”;反之,由
Season.valueOf(“SPRING”)则能够得到该对象,即Season.SPRING。也是说,使用name()方法和valueOf(String)方法能够在
枚举类型对象和字符串之间方便得转换。当然,假设valueOf(String)方法的?数不是该枚举类型合法的字符串,则会抛出
IllegalArgumentException异常。
对于枚举类型,Java内部实际上还是转换为java.lang.Enum的子类,能够通过“javap -c Season”命令反编译来观察这一
点。Enum类提供了一个ordinal()方法,用来返回枚举对象的序数,比方本例中SPRING, SUMMER, AUTUMN, WINTER
的序数分别为0, 1, 2, 3。在有些情况下,我们须要使用这个序数,并且还有可能再依据这个序数生成所须要的枚举对象,
但是Enum并没有提供valueOf(int)这个方案,那是不是做不到呢?
对于这个问题,实际上能够利用枚举类型的values()方法间接的做到。values()方法返回一个枚举对象数组,比方本例是
Season[],数组元素依照序数排列。在自己定义的枚举类型中,我们仅仅要定义自己的valueOf(int)方法,并返回该数组下标
对象的对象能够了。代码例如以下:
enum Season {
SPRING, SUMMER, AUTUMN, WINTER;
public static Season valueOf(int ordinal) {
if (ordinal < 0 || ordinal >= values().length) {
throw new IndexOutOfBoundsException("Invalid ordinal");
}
return values()[ordinal];
}
}
怎么样,还是挺简单的吧?
资源评论
weixin_38688352
- 粉丝: 4
- 资源: 909
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功