首页 > 代码库 > Java枚举enum使用及相关的操作
Java枚举enum使用及相关的操作
在Java1.5之后,引入了枚举新的特性,在之前,java有两种定义新类型的方式:类和接口。但是在特殊情况下,满足不了我们的需求,比如我们定义一个Color类,它只能有Red,Blue,Green三种值,对于其他的值来说都是无效的。为引入枚举之前,我们一般使用其私有化其构造方法,然后在其内部实例化三个常量,然后再取值。这样不仅繁琐,而且带来了更多不安全的问题。
package andy.enumtype.test; /** * @author Zhang,Tianyou * version:2014-11-24 上午11:03:06 * * */ public class Color { public static final Color RED = new Color("红色"); public static final Color GREEN = new Color("绿色"); public static final Color BLUE = new Color("蓝色"); private Color(String name) { this.name = name; } private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public static Color getInstance(int i) { switch (i) { case 0: return Color.RED; case 1: return Color.GREEN; case 2: return Color.BLUE; default: return null; } } public static void main(String[] args){ Color color = Color.RED; System.out.println(color.getName()); } }
但是这样只能从RED BLUE GREEN 三个中获取值。
在枚举中如下实现:
package andy.enumtype.test; /** * @author Zhang,Tianyou * version:2014-11-24 上午11:43:07 * * */ public enum Color1 { RED("红色"), BLUE("蓝色"), GREEN("绿色"); private Color1(String name) { this.name = name; } private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public static void main(String[] args){ Color1 color = Color1.RED; System.out.println(color.getName()); //c.ordinal() 获取序号 for (Color1 c : Color1.values()) { System.out.println(c.ordinal() + "----" + c.getName()); } } }
还支持EnumSet,和EnumMap等操作。
Java枚举enum使用及相关的操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。