• Enum的使用


    在项目开发中经常会使用到枚举,下面将举个例子,展示枚举的使用,不说废话,直接上代码。

     1 package com.tom.enumTest;
     2 
     3 public enum StatusType {
     4    A("FOOD","1"), B("CAR","2"), C("HOME","3");
     5    private String label;
     6    private String value;
     7 /**
     8  * @return the label
     9  */
    10 public String getLabel() {
    11     return label;
    12 }
    13 /**
    14  * @param label the label to set
    15  */
    16 public void setLabel(String label) {
    17     this.label = label;
    18 }
    19 /**
    20  * @return the value
    21  */
    22 public String getValue() {
    23     return value;
    24 }
    25 /**
    26  * @param value the value to set
    27  */
    28 public void setValue(String value) {
    29     this.value = value;
    30 }
    31 private StatusType(String label, String value) {
    32     this.label = label;
    33     this.value = value;
    34 }
    35   public StatusType getStatusTypeByValue(String val) {
    36         for (StatusType statusType : StatusType.values()) {
    37             if (statusType.getValue().equals(val)) {
    38                 return statusType;
    39             }
    40         }
    41       return null;
    42   }
    43   
    44 }
    View Code
     1 package com.tom.enumTest;
     2 
     3 import java.lang.reflect.Method;
     4 import java.util.ArrayList;
     5 import java.util.Arrays;
     6 import java.util.List;
     7 
     8 public class TestForEnum {
     9     private static final String GET_LABEL_METHOD = "getLabel";
    10     public static <T extends Enum<T>> T translateByCode(final Class<T> clazz, final String code) {
    11         if(code != null){
    12             try {
    13                 final Method m = clazz.getDeclaredMethod(GET_LABEL_METHOD);
    14                 for (T t : inspectConstants(clazz)) {
    15                     if (code.equals(m.invoke(t))) {
    16                         return t;
    17                     }
    18                 }
    19             } catch (Exception e) {            
    20                 throw new RuntimeException(e);
    21             }
    22         }
    23         return null;
    24     }
    25     public static <T extends Enum<T>> List<T> inspectConstants(final Class<T> clazz) {
    26         return new ArrayList<T>(Arrays.asList(clazz.getEnumConstants()));
    27     }
    28     public static void main(String[] args) {
    29         StatusType statusType = translateByCode(StatusType.class, "FOOD");
    30         System.out.println(statusType.getLabel()+","+statusType.getValue());
    31     }
    32 }
    View Code
    public enum NumberEnum {
    ONE("1","哈哈"),
    TWO("2","嘿嘿"),
    THREE("3","呵呵");
    private String key;
    private String value;
    NumberEnum(String key,String value) {
    this.key = key;
    this.value = value;
    }

    public String getKey() {
    return key;
    }

    public String getValue() {
    return value;
    }
    public static NumberEnum getByKey(String key){
    NumberEnum[] numEnum = NumberEnum.values();
    for(NumberEnum dEnum : numEnum){
    if(redEnum.getValue() == key){
    return dEnum;
    }
    }
    return null;
    }
    @Test
    public void getIt4() {
    Map<String,Object> map = new HashMap<String, Object>();
    NumberEnum[] numEnum = NumberEnum.values();
    if ( null != numEnum && numEnum.length >=0) {
    for (NumberEnum nEnum : numEnum) {
    map.put(nEnum.getKey(),nEnum.getValue());
          }
    }
    System.out.println(map.size());
    }
  • 相关阅读:
    Azure 2 月新公布
    协合新能源康大海:我们每多发一度电,就为蓝天白云多贡献了一份力量
    Azure:陪伴你们,是我最长情的告白
    微软加速器上海首期启航,拓展云端智慧创新
    Azure杯年会Cosplay大赛,速来围观!
    Azure 1 月新公布
    Azure进阶攻略 | VS2015和Azure,想要在一起其实很容易
    Azure进阶攻略丨如何驾驭罢工的Linux虚机网卡?
    Azure 12 月新公布
    利用枚举找到列表中重复元素的索引
  • 原文地址:https://www.cnblogs.com/tom-plus/p/5274617.html
Copyright © 2020-2023  润新知