枚举类型Enum的使用方式

本文介绍了一个枚举类,用于存储和操作中国的省份编码。该类包含所有省份的编码、名称、简称和英文代码,提供了获取省份信息的方法,区分国际和国内省份,并能获取特定类型的所有省份编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.eshore.fssc.common.constant.sysmgr;

import java.util.ArrayList;
import java.util.List;


/**
 * 区域编码
 * @author lm
 *
 */
public enum ProvinceCodeTypes {

    HEADQUARTERS("00", "10", "总部", "HQ"),
    BEI_JING("01", "11", "北京", "BJ"),
    ZHE_JIANG("02", "33", "浙江", "ZJ"),
    SHANG_HAI("03", "31", "上海", "SH"),
    ESTATE_TAX("04", "32", "江苏", "JS"),
    HUNAN("05", "43", "湖南", "HN"),
    HUBEI("06", "42", "湖北", "HB"),
    SHANXI("07", "61", "陕西", "SN"),
    HAINAN("08", "46", "海南", "HI"),

    CIT_TAX("09", "44", "广东", "GD"),
    GUANGXI("10", "45", "广西", "GX"),
    ANHUI("11", "34", "安徽", "AH"),
    CHONG_QING("12", "50", "重庆", "CQ"),
    SICHUAN("13", "51", "四川", "SC"),
    YUNNAN("14", "53", "云南", "YN"),
    XIZANG("15", "54", "西藏", "XZ"),
    GANSU("16", "62", "甘肃", "GS"),
    NINGXIA("17", "64", "宁夏", "NX"),
    GUIZHOU("18", "52", "贵州", "GZ"),
    QINGHAI("19", "63", "青海", "QH"),
    XINJIANG("20", "65", "新疆", "XJ"),
    TIANJING("21", "12", "天津", "TJ"),
    FUJIAN("22", "35", "福建", "FJ"),
    JIANGXI("23", "36", "江西", "JX"),
    HEILONGJIANG("24", "23", "黑龙江", "HL"),
    JILIN("25", "22", "吉林", "JL"),
    LIAONING("26", "21", "辽宁", "LN"),
    HEBEI("27", "13", "河北", "HE"),
    SHAN_XI("28", "14", "山西", "SX"),
    SHANDONG("29", "37", "山东", "SD"),
    HENAN("30", "41", "河南", "HA"),
    NEIMENG("31", "15", "内蒙古", "NM"),
    GJGS("54", "54", "国际公司", "GJGS"),
    AOMEN("55", "55", "澳门", "AOMEN"),
    GUONEI("90", "90", "国内", "GUONEI"),
    GUOJI("99", "99", "国际", "GUOJI");
    public final String code;
    
    public final String eCode;

    public final String lable;
    
    public final String shortCode;      // 简称

    /**
     * 获取国际所有省份编码
     * @author liumin 2017-06-19
     * @param provinceCode
     * @return
     */
    public static List<String> getGuoJiCode(){
        List<String> guoJiCodes=new ArrayList<String>();
        guoJiCodes.add(AOMEN.code);
        guoJiCodes.add(GJGS.code);
        return guoJiCodes;
    }
    
    /**
     * 获取国内所有省份编码
     * @author liumin 2017-06-19
     * @param provinceCode
     * @return
     */
    public static List<String>  getGuoNeiCode(){
        List<String> guoNeiCodes=new ArrayList<String>();
        guoNeiCodes.add(HEADQUARTERS.code);
        guoNeiCodes.add(BEI_JING.code);
        guoNeiCodes.add(ZHE_JIANG.code);
        guoNeiCodes.add(SHANG_HAI.code);
        guoNeiCodes.add(ESTATE_TAX.code);
        guoNeiCodes.add(HUNAN.code);
        guoNeiCodes.add(HUBEI.code);
        guoNeiCodes.add(SHANXI.code);
        guoNeiCodes.add(HAINAN.code);
        guoNeiCodes.add(CIT_TAX.code);
        guoNeiCodes.add(GUANGXI.code);
        guoNeiCodes.add(ANHUI.code);
        guoNeiCodes.add(CHONG_QING.code);
        guoNeiCodes.add(SICHUAN.code);
        guoNeiCodes.add(YUNNAN.code);
        guoNeiCodes.add(XIZANG.code);
        guoNeiCodes.add(GANSU.code);
        guoNeiCodes.add(NINGXIA.code);
        guoNeiCodes.add(GUIZHOU.code);
        guoNeiCodes.add(QINGHAI.code);
        guoNeiCodes.add(XINJIANG.code);
        guoNeiCodes.add(TIANJING.code);
        guoNeiCodes.add(FUJIAN.code);
        guoNeiCodes.add(JIANGXI.code);
        guoNeiCodes.add(HEILONGJIANG.code);
        guoNeiCodes.add(JILIN.code);
        guoNeiCodes.add(LIAONING.code);
        guoNeiCodes.add(HEBEI.code);
        guoNeiCodes.add(SHAN_XI.code);
        guoNeiCodes.add(SHANDONG.code);
        guoNeiCodes.add(HENAN.code);
        guoNeiCodes.add(NEIMENG.code);
        //System.out.println(guoNeiCodes.toString());
        return guoNeiCodes;
    }
    private ProvinceCodeTypes(String code, String eCode, String lable, String shortCode) {
        this.code = code;
        this.eCode = eCode;
        this.lable = lable;
        this.shortCode = shortCode;
    }
    
    public String getCode(){
        return this.code;
    }
    
    public static String getName(String code) {
        ProvinceCodeTypes[] values = ProvinceCodeTypes.values();

        for (ProvinceCodeTypes type : values) {
            if (type.code.equals(code))
                return type.lable;
        }

        return null;
    }
    
    public static String getCode(String lable) {
        ProvinceCodeTypes[] values = ProvinceCodeTypes.values();
        for (ProvinceCodeTypes type : values) {
            if (type.lable.equals(lable))
                return type.code;
        }

        return null;
    }
    
    public static String getCodeByEcode(String ecode) {
        ProvinceCodeTypes[] values = ProvinceCodeTypes.values();
        for (ProvinceCodeTypes type : values) {
            if (type.eCode.equals(ecode))
                return type.code;
        }

        return null;
    }
    
    public static String getECode(String code) {
        ProvinceCodeTypes[] values = ProvinceCodeTypes.values();
        for (ProvinceCodeTypes type : values) {
            if (type.code.equals(code))
                return type.eCode;
        }

        return null;
    }
    
    public static String getShortCode(String code) {
        ProvinceCodeTypes[] values = ProvinceCodeTypes.values();
        for (ProvinceCodeTypes type : values) {
            if (type.code.equals(code))
                return type.shortCode;
        }

        return null;
    }
    
    public static String[] names(){
        ProvinceCodeTypes[] values = ProvinceCodeTypes.values();
        int len = values.length;
        String[] result = new String[len];
        for (int i = 0; i < len; i++) {
            result[i] = values[i].lable;
        }
        return result;
    }
    
    public String getLable() {
        return lable;
    }
    
    
    
    /**
     * 国际公司省份判断
     * @param provinceCode
     * @return
     */
    public static boolean isInternational(String provinceCode) {
        if(GJGS.code.equals(provinceCode) || AOMEN.code.equals(provinceCode) || GUOJI.code.equals(provinceCode)){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 国内省份判断
     * @param provinceCode
     * @return
     */
    public static boolean isDomestic(String provinceCode){
        if(!isInternational(provinceCode) ){
            return true;
        }else{
            return false;
        }
    }
    
    
    
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值