java enum详解
2016-05-06 16:32
531 查看
enum
enum是jdk1.5引入的概念。enum类型的值实际上是通过运行期构造的对象来表示。在定义enum的时候编译器会默认帮我们做些事:所有的枚举类会默认继承Enum(Enum默认实现 Comparable 和 Serializable 接口),所以枚举类不可以在继承其他的类(java单继承);
所有的枚举类是final的,不可有子类
所有定义的枚举常量,会在定义的枚举类中生成public static final常量
注意:switch在判断是否相等的时候默认使用equal()方法
定制enum类型:
public enum EnumTest{ Yahoo("www.yaho.com"), Baidu("www.baidu.com"), Google("www.google.com");//注意,如果有定制的方法,最后一个枚举值是需要用;隔开 private String name; //构造方法必须是private或者friendly的 private EnumTest(String name) { this.name=name; } public String getName() { return name; } } //main函数中 public static void main(String[] args) { System.out.println(EnumTest.Baidu.getName()); } 输出百度的网址
enum相关工具类
enum WeekDay{ Mon,Tue,Wen } enum EnumNetwork{ Yahoo, Baidu, Google} public class Test { public static void main(String[] args) { for(WeekDay day:WeekDay.values()) { System.out.println(day); } //enumset内部通过bit-vector实现 for (WeekDay day: EnumSet.range(WeekDay.Mon,WeekDay.Wen)){ System.out.println(day); } //注意enummap和一般的map使用方式的不同 EnumMap<WeekDay,EnumNetwork> map=new EnumMap<WeekDay, EnumNetwork>(WeekDay.class); for(int i=0;i<WeekDay.values().length;i++) { map.put(WeekDay.values()[i],EnumNetwork.values()[i]); } System.out.println(map.get(WeekDay.Mon)); } }
相关文章推荐
- spring集成jms用法
- Java学习之输入+文本输出
- Spring面试,IoC和AOP的理解
- eclipse快捷键大全
- 蓝桥杯 分机号 第六届JavaB组决赛第一题
- java集合07--Stack源码解读
- java保留4位小数
- Hibernate Validation各注解的用法Demo
- struts2的配置学习
- Java中Annotation的介绍
- 解决eclipse中使用log4j2在控制台输出无法显示颜色
- Java中finalize关键字的使用
- 【SSH】MyEclipse卸载干净的方法
- 推荐几个优秀的java爬虫项目
- Google Java编程风格指南
- 了解java回调方法
- springmvc+mybatis xml中SUM()方法返回NULL的解决办法
- Ajax与Java通过POST方式交互
- Spring MVC拦截器
- Javamail实现邮件发送