• Java 枚举(enum) 常见用法


    JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

    用法一:常量.

    在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

    public enum Color {
         RED, GREEN, BLANK, YELLOW 
    }

    简单使用
    public class B {
        public static void main(String[] args) {
            System.out.println( isRed( Color.BLANK ) ) ;  //结果: false
            System.out.println( isRed( Color.RED ) ) ;    //结果: true
        }
     
        static boolean isRed( Color color ){
            if ( Color.RED.equals( color )) {
                return true ;
            }
            return false ;
        }
      }
     
    或者 switch 的使用

      Signal color = Signal.RED; 

      public void change() {  

            switch (color) {  

          case RED:  

                color = Signal.GREEN; 

            break;  

          case YELLOW:  

                color = Signal.RED;  

           break;  

          case GREEN:  

                color = Signal.YELLOW;

            break;  

            }  

        }  

    用法二:覆盖枚举的方法

    下面给出一个toString()方法覆盖的例子。

    enum Color{
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        // 成员变量  
        private String name;  
        private int index;
        
        // 构造方法  
        private Color(String name, int index) {  
            this.name = name;  
            this.index = index;  
        }  
        //覆盖方法  
        @Override  
        public String toString() {  
            return this.index+"_"+this.name;  
        }  
    }
    用法
    Color.RED.toString(); //打印1_红色

    同样的,也可以是一个参数
     
    enum ExecStatus {

           WAIT('0'), PROGRESS('1'), SUCCESS('2'), ERROR('3');
        private char state;

        private ExecStatus(char state) {
          this.state = state;
        }

        public char getValue() {
          return state;
        }

        @Override
        public String toString() {
          return String.valueOf(state);
        }
     }

    用法
    ExecStatus.WAIT.getValue() //打印0
  • 相关阅读:
    TKStudio示例工程LPC1220_GPIO_LED学习
    LIve Writer图片自动水印,自动居中,自动为原始大小的设置方法.
    cmd 修改文件属性
    [原创]Java下X86机,Bytes和Int的转换
    [原创]把","号分隔的字串转化成一列的Table
    [原创]Java实现PKCS7填充的DES加密(修订版)
    利用ADODB.Stream实现 Bytes到String的指定编码的转换
    [原创]利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆(修改)
    [原创]用XMLHttp BinaryWrite,Post GB2312编码的字串
    UTF8ToBytes
  • 原文地址:https://www.cnblogs.com/gaomanito/p/8472356.html
Copyright © 2020-2023  润新知