枚举

简介:初次知道枚举  还是刚学java的时候 那时候讲四类八种,还有一种特殊的类型 叫做枚举,开始工作以后发现都是用的常量类Constant 直到现在需要处理数据库的一些东西,那么多类型 长度,如果代码中判断 要写多少if else  switch的话要弄多少处理分支。然后同事提示我可以试试枚举。一试,wo CaO,真香

mysql的字段长度枚举类:

public enum MysqlColumnTypeLengthEnum {
    
    BIGINT("bigint", 255),                        //bigint
    BINARY("binary", 255),                         //binary
    BIT("bit", 64),                                 //bit
    BLOB("blob", 0),                             //blob
    CHAR("char", 255),                             //char    
    DATE("date", 0),                             //date
    DATETIME("datetime", 6),                     //datetime
    DECIMAL("decimal", 65),                       //decimal 
    DOUBLE("double", 255),                         //double
    ENUM("enum", 64),                             //enum
    FLOAT("float", 255),                         //float
    GEOMETRY("geometry", 0),                     //geometry
    GEOMETRYCOLLECTION("geometrycollection", 0),//geometrycollection
    INT("int", 255),                            //int
    INTEGER("integer", 255),                    //integer
    JSON("json", 0),                            //json
    LINESTRING("linestring", 0),                //linestring
    LONGBLOB("longblob", 0),                    //longblob
    LONGTEXT("longtext", 0),                    //longtext
    MEDIUMBLOB("mediumblob", 0),                //mediumblob
    MEDIUMINT("mediumint", 255),                //mediumint
    MEDIUMTEXT("mediumtext", 0),                //mediumtext
    MULTILINESTRING("multilinestring", 0),        //multilinestring
    MULTIPOINT("multipoint", 0),                //multipoint
    MULTIPOLYGON("multipolygon", 0),            //multipolygon
    NUMERIC("numeric", 65),                        //numeric
    POINT("point", 0),                            //point
    POLYGON("polygon", 0),                        //polygon
    REAL("real", 255),                            //real
    SET("set", 64),                                //64
    SMALLINT("smallint", 255),                    //smallint
    TEXT("text", 0),                            //text
    TIME("time", 6),                            //time
    TIMESTAMP("timestamp", 6),                  //timestamp
    TINYBLOB("tinyblob", 0),                    //tinyblob
    TINYINT("tinyint", 255),                    //tinyint
    TINYTEXT("tinytext", 0),                    //tinytext
    VARBINARY("varbinary", 65522),                //varbinary            
    VARCHAR("varchar",21840),                     //varchar
    YEAR("year", 4),                             //year
    
    UNDEFINED_COLUMN("",null);                   //未定义
    
    public String name;
    public Integer len;
    
    MysqlColumnTypeLengthEnum(String name, Integer len){
        this.name = name;
        this.len = len;
    }
    
    public static MysqlColumnTypeLengthEnum getColumnInfo(String name){
        for(MysqlColumnTypeLengthEnum item: values()){
            if(name.equals(item.name)){
                return item;
            }
        }
        return UNDEFINED_COLUMN;
    }
}

调用的时候:

        List<Map<String, Object>> mysqlTypeList = new ArrayList<>();
        for (MysqlColumnTypeLengthEnum item : MysqlColumnTypeLengthEnum.values()) {
            Map<String, Object> m = new HashMap<>();
            m.put("name", item.name);
            m.put("len", item.len);
            mysqlTypeList.add(m);
        }

下边连接是相关文章 人家总结的非常好!!!

JAVA常量类的实现方式_枚举类_项目实践  对于常量类的封装整理的很妙

使用枚举代替常量,简化工作 尤其是最后的使用注解来代替常量类和枚举,靓仔 

原文地址:https://www.cnblogs.com/xuchao0506/p/13168298.html