使用枚举常量代替接口常量或类常量(一个枚举实例)
2016-08-30 18:01
337 查看
枚举类:
/** * @Description: 颜色枚举类,所有枚举类默认继承public abstract class Enum */ public enum EnumColor { //定义枚举,以静态常量的方式进行定义,并以静态方式[枚举类.实例名]来获取实例对象,如[EnumColor.RED] //使用的是EnumColor(int code,String color)构造函数 //最后两个使用的是EnumColor(String color)构造函数 RED(1,"红色"), GREEN(2,"绿色"), BLANK(3,"白色"), YELLO(4,"黄色"),BLUE("蓝色"),BLACK("黑色"); //声明的枚举属性,同时生成getter方法 private int code; private String color; //构造函数 private EnumColor(int code,String color) { this.code = code; this.color = color; } private EnumColor(String color){ this.color = color; } //枚举属性的getter方法 public int getCode() { return code; } public String getColor() { return color; } //重写toString()方法 @Override public String toString() { return "[code:"+this.code + ",color:" + this.color+"]"; } //提供静态方法,通过code获取color的值 public static String colorOf(int code) { //EnumColor.values()获取枚举所有实例对象,还有通过名称获取方式EnumColor.valueOf("RED")、EnumColor.valueOf(EnumColor.class, "RED") //遍历枚举所有实例对象 for (EnumColor color : EnumColor.values()) { if (color.getCode() == code) { return color.getColor(); } } return null; } }
枚举测试类:
/** * @Description: 枚举测试类 */ public class EnumTest { public static void main(String[] args) { //通过静态方式直接获取枚举实例对象,打印实例对象自动调用toString()方法 System.out.println(EnumColor.RED); //获取实例对象之后,获取相关属性信息 System.out.println(EnumColor.GREEN.getCode()); System.out.println(EnumColor.GREEN.getColor()); //通过valueOf()方法获取枚举实例对象,并获取对象相关信息 System.out.println(EnumColor.valueOf("BLANK").getCode()); System.out.println(EnumColor.valueOf(EnumColor.class, "BLANK").getColor()); //通过自定义的静态方法colorOf(int code)获取color信息 //YELLO(4,"黄色") System.out.println(EnumColor.colorOf(4)); } }
输出结果:
[code:1,color:红色]2
绿色
3
白色
黄色[/code]
相关文章推荐
- JAVA中常量使用常量类或者常量接口,还是使用枚举的区别
- tcl/tk实例详解——修改目录下所有文件(使用一个字符串代替另外一个)
- 使用枚举代替常量,简化工作!
- 项目代码优化:使用Java枚举常量代替类常量
- Python 实现的一个使用接口的实例
- tcl/tk实例详解——修改目录下所有文件(使用一个字符串代替另外一个)
- [C#]实现IEnumerable接口来使用foreach语句的一个实例
- ATL ActiveX 控件的方法或事件中使用枚举常量 (补遗)
- freemarker使用bean类的一个实例
- 一个COM异步实现接口列集(Marshal)源代码实例
- 一个正在项目中使用的DataInterface数据访问接口
- Java中的接口与抽象类的比较、应用和实例 – 一个培训师不错的简洁解述
- 一个实例来简单的说明接口
- 【翻译】使用ASP.NET MVC 和 LINQ 创建一个Blog引擎实例-第一节
- 自己写的一个使用CSocket的实例
- 如何使用form嵌套和接口来设计一个复杂的用户界面
- 一个使用游标的存储过程的实例
- Access使用宏控制程序--1.5.一个宏的实例――检验口令
- JSP中使用JavaBean的一个实例
- 一个ini类代替缓存使用