精华内容
下载资源
问答
  • 判断某个值是否在一个枚举值中 proto文件有如下定义: enum EquipSlotID // 装备特定位置 { ESI_ARM = 0; // 武器 ESI_GEM = 1; // 宝物 ESI_CLOTHES = 2; // 衣服 ESI_BELT = 3; // 腰带 ESI_JEWELRY = 4; /...

    判断某个值是否在一个枚举值中

    proto文件中有如下定义:

    enum EquipSlotID // 装备特定位置
    {
      ESI_ARM = 0;     // 武器
      ESI_GEM = 1;     // 宝物
      ESI_CLOTHES = 2; // 衣服
      ESI_BELT = 3;    // 腰带
      ESI_JEWELRY = 4; // 饰品
    }
    

    以前的做法是:

    std::set<int> ReserveEquipSlots = {ESI_ARM, ESI_GEM, ESI_CLOTHES, ESI_BELT, ESI_JEWELRY};
    ...
    int slotID = -1;
    if (ReserveEquipSlots.find(slotID) == ReserveEquipSlots.end())
    {
    	...
    }
    
    

    Protobuf中:

    其实,protobuf在生成*.pb.h、*.pb.c时,已经在其中添加了全局函数:
    SkillSlotID_IsValid,其实现比较简单:

    bool EquipSlotID_IsValid(int value) {
      switch (value) {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
          return true;
        default:
          return false;
      }
    }
    

    所以,无需自己再定义一个容器来调用其find函数,直接调用全局的SkillSlotID_IsValid即可。

    展开全文
  • 使用Enum.IsDefined()方法。...枚举类 public enum Roles { 管理员, 高级用户, 普通用户 } 主函数 static void Main(string[] args) { while (true) { string role = Console.ReadLine(); ...

    使用Enum.IsDefined()方法。官方文档
    在这里插入图片描述

    下面是测试例子:

    枚举类

    public enum Roles
    {
         管理员, 高级用户, 普通用户
    }
    

    主函数

    static void Main(string[] args)
    {
        while (true)
        {
            string role = Console.ReadLine();
            
            bool flag = Enum.IsDefined(typeof(Roles), role);
            
            Console.WriteLine(flag);
        }
    }
    

    结果:
    在这里插入图片描述

    展开全文
  • 判断值是否属于枚举类中

    千次阅读 2019-05-22 09:27:32
    EnumUtils.isValidEnum(MyEnum.class, myValue)
    EnumUtils.isValidEnum(MyEnum.class, myValue)
    展开全文
  • 判断某个值是否存在指定枚举类中

    万次阅读 2020-07-10 19:40:53
    开篇 如果这里获得过启发和思考,希望点赞支持...那么该字段只能存储 1,2,3,4这几个值,由于该是前端传到后台的,无法保证正确因此后端通常会进行校验该。 我的思路 对于该类型的字段通常会使用枚举类表示

    描述

    • 在web项目开发过程中,对于一些类型字段通常会用 1,2,3 等数值表示。
    • 例如:支付功能选择支付方式 1:余额 2:支付宝 3:微信 4:苹果支付等。
    • 那么该字段只能存储 1,2,3,4这几个值,由于该值是前端传到后台的,无法保证正确因此后端通常会进行校验该值。

    我的思路

    • 对于该类型的字段通常会使用枚举类表示,如:
    public enum PayRecordPayWayEnum {
    
    	BALANCE(1,"余额"),          // 1:余额
    	ALI(2,"支付宝"),            // 2:支付宝
    	WECHAT(3, "微信"),          // 3:微信
    	APP_STORE(4,"苹果支付")     // 4:苹果支付
    	;
    
    	private final Integer code;
    	private final String description;
    
    	private PayRecordPayWayEnum(Integer code, String description) {
    		this.code = code;
    		this.description = description;
    	}
    
    	public Integer getCode() { // 注意此方法名,在接下来的工具类中会使用到
    		return code;
    	}
    
    	public String getDescription() {
    		return description;
    	}
    }
    
    • 我们需要的是,通过一个工具来判断某个code是否存在于该枚举类中。

    解决方法:

    • 通过java反射机制,注意需要保证枚举类中的 getCode() 和下面工具类中的一致。
    public class EnumUtil {
    
        private static final Logger logger = LoggerFactory.getLogger(EnumUtil.class);
    
        /**
         * 判断某个枚举是否包某个code值
         * @param enumClass 需要判断是否存在那个枚举类中
         * @param code 需要判断的值
         * @return 包含返回true,否则返回false
         */
        public static boolean isInclude(Class enumClass, int code){
            List enumList = EnumUtils.getEnumList(enumClass);
            for (int i = 0;i<enumList.size(); i++){
                Object en = enumList.get(i);
                Class<?> enClass = en.getClass();
                try {
                    Method method = enClass.getMethod("getCode"); // 需要与枚举类方法对应
                    Object invoke = method.invoke(en, null);
                    if(Integer.parseInt(invoke.toString()) == code) {
                        return true;
                    }
                }catch (Exception e){
                    logger.error("枚举执行getCode方法失败...");
                }
            }
            return false;
        }
        
        public static void main(String[] args) {
            boolean include1 = isInclude(PayRecordPayWayEnum.class, 3);
            System.out.println(include1); // true
            
            boolean include2 = isInclude(PayRecordPayWayEnum.class, 5);
            System.out.println(include2); // false
        }
    }
    

    最后

    • 如果在这里获得过启发和思考,希望点赞支持!对于内容有不同的看法欢迎来信交流。
    • 技术栈 >> java
    • 邮箱 >> 15673219519@163.com
    展开全文
  • 只需要使用如下方法: Enum.IsDefined(typeof(枚举类型),)
  • for (Const.UmbrellaLocation location : Const.UmbrellaLocation.values()){ if (location.getValue().equalsIgnoreCase(stationId)){ flag = true; break; } }
  • 今天开发的时候遇到一个判断需求:判断一个值是否属于枚举类。之前写的话都是通过if里面写上|| 或来连接 或者为每个枚举Enum写一个遍历判断的方法。后来想了一下实在太麻烦了,加入枚举类改变的话业务代码的判断...
  • Java反射 遍历判断值是否属于枚举类

    千次阅读 2020-08-19 23:37:02
    今天开发的时候遇到一个判断需求:判断一个值是否属于枚举类。 之前写的话都是通过if里面写上|| 或来连接 或者为每个枚举Enum写一个遍历判断的方法。 后来想了一下实在太麻烦了,加入枚举类改变的话业务代码的...
  • 传入参数判断是否包含在枚举类中

    万次阅读 2018-12-12 17:35:08
    枚举类: public enum UserRewardTaskType { UPDATE_NAME_REWARD_MONEY("1000","测试1"), UPDATE_HEAD_REWARD_MONEY("1001","测试2"), FILL_ADDRESS_REWARD_MONEY(&...
  • 获取Class类型和一个int判断枚举类型是否包含该int 测试用的枚举类: enum EnumTest{ line(0), abc(100), ccd(1); private int value; private EnumTest(int value) { this.value=value; } //获取...
  • 前言 asm是操作class字节码的框架,常常用于运行期修改...这次的需求是通过class文件去判断是否枚举类. 如何通过asm读一个class文件呢? public static void main(String[] args) { try { FileInputStream in = ne...
  • Python enum 枚举 判断 key(键) 或者 value(是否在枚举中 python 的基本用法请浏览:https://www.cnblogs.com/ibingshan/p/9856424.html 这里讨论如何判断 key(键) 或者 value(是否在枚举中 1 ...
  • 今天记录一下如何使用Java代码判断一个对象是否存在于指定枚举类型 首先定义了一个枚举类,这个里面是一些系统规定好的数据,不会更改 由于产品是微信小程序,所以有代码总量大小要求,所以全团队以代码简洁为...
  • 默认情况下,枚举一个值是0, 可显式为枚举赋值。可以定义枚举的基础类型,如enum E : short {}, sizeof(E) == 2;默认情况下是int。枚举的继承链:ValueType->Enum->enum枚举类型和基础类型之间的转换都是显式的...
  • 我有一个枚举类型: #region -酒的种类- public enum WineType { 白酒 = 3, 葡萄酒 = 4, 洋酒 = 5, 老年陈酒 = 16, 啤酒 = 17 } ...
  • //bool isdefine = Enum.IsDefined(typeof(ResourceType), kv.Key);//判断某个整型是否定义在枚举中
  • 判断枚举值是否存在

    千次阅读 2010-06-23 16:57:00
    判断枚举值是否存在 枚举 Enum IsDefined SubMain BUGSoft
  • 通过枚举类值获得枚举类实例

    千次阅读 2018-11-04 01:07:06
    需求: 判断同一监控点下监控点名称是否已存在 前端页面: 数据库: (monitor_type:监控点类型;TeleMeasurement:遥测;TeleQuantity:遥信) 实体: @Enumerated(EnumType.STRING) @Column(name = "...
  • ***测试demo git仓库: https://github.com/alwaysInRoad/test-enum-demo.git  csdn下载地址: ... 测试demo内的代码是从实际项目抽离出来的,本demo为普通ja...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 175,545
精华内容 70,218
关键字:

判断一个值是否在枚举类中