Conveniently map between enum and int / String

前端 未结 18 1809
陌清茗
陌清茗 2020-11-28 01:07

When working with variables/parameters that can only take a finite number of values, I try to always use Java\'s enum, as in

public enum BonusT         


        
18条回答
  •  無奈伤痛
    2020-11-28 01:35

    org.apache.commons.lang.enums.ValuedEnum;

    To save me writing loads of boilerplate code or duplicating code for each Enum, I used Apache Commons Lang's ValuedEnum instead.

    Definition:

    public class NRPEPacketType extends ValuedEnum {    
        public static final NRPEPacketType TYPE_QUERY = new NRPEPacketType( "TYPE_QUERY", 1);
        public static final NRPEPacketType TYPE_RESPONSE = new NRPEPacketType( "TYPE_RESPONSE", 2);
    
        protected NRPEPacketType(String name, int value) {
            super(name, value);
        }
    }
    

    Usage:

    int -> ValuedEnum:

    NRPEPacketType packetType = 
     (NRPEPacketType) EnumUtils.getEnum(NRPEPacketType.class, 1);
    

提交回复
热议问题