众所周知

Enum类重写了equals方法,使其与“==”判断一致

    public final boolean equals(Object other) {return this==other;}

但这只针对枚举这个类之间,很多时候我们不直接比较枚举类,而是比较具体的属性。
因为几乎前后端交互不会传递枚举这个对象,只会传递里面的属性比如code,name等等。
然后有两个思路:

  1. getByCode通过code获取对应的枚举对象,比较枚举对象
 switch (MathEnum.getByCode("=")) {case LE:case LT:
  1. 枚举对象getCode返回code属性比较String
 if (!MathEnum.EQ.getCode().equals("=")){log.info("不执行");}

枚举和字符串

一个运算符枚举类

public enum MathEnum {EQ("=", "等于"),GE(">=", "大于或等于"),LE("<=", "小于或等于"),GT(">", "大于"),LT("<", "小于"),BTN("between", "在...之间"),;private final String code;private final String desc;MathEnum(String code, String desc) {this.code = code;this.desc = desc;}public String getCode() {return code;}public String getDesc() {return desc;}public static MathEnum getByCode(String code) {if (code == null) {return null;}for (MathEnum mathEnum : MathEnum.values()) {if (code.equals(mathEnum.getCode())){return mathEnum;}}return null;}public static List<String> getCodes() {List<String> result = Lists.newArrayList();for (MathEnum mathEnum : MathEnum.values()) {result.add(mathEnum.getCode());}return result;}
}

会有这四种比较形式。其实MathEnum.EQ.getCode()返回值本就是String类型的"=",本质是字符串之间的比较。

            if (MathEnum.EQ.getCode() != "="){log.info("执行");}if ("=" != MathEnum.EQ.getCode()){log.info("执行");}if (!"=".equals(MathEnum.EQ.getCode())){log.info("不执行");}if (!MathEnum.EQ.getCode().equals("=")){log.info("不执行");}

回忆一下字符串的==和equals,当字符串相同,但是对象不同或者说地址不同时:

  1. equals返回true
  2. ==返回false

Java枚举Enum 与字符串的比较相关推荐

  1. Java枚举(Enum)类型使用的正确姿势

    关于Java Enum的介绍及原理参见 Java枚举(Enum)类型的基本介绍与原理探求 Enum类型的基本使用 定义一个枚举类的主要作用就是在逻辑代码中对某个变量的值进行比较.同样以季节的枚举类Se ...

  2. Java 枚举(enum) 7种常见的用法

    在JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是 ...

  3. Java枚举(enum)常用的用法总结

    Java枚举[enum] Java枚举(enum)七种常见的用法汇总如下: 用法一:常量 用法二:switch 用法三:向枚举中添加新方法 用法四:覆盖枚举的方法 用法五:实现接口 用法六:使用接口组 ...

  4. Java 枚举(enum)

    Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等. Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 ...

  5. Java枚举(Enum)类型的基本介绍与原理探求

    Enum枚举类型 Enum的全写是Enumeration,这个词的翻译是列举.逐条陈述.细目.在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串.整型),这种数据类型的变量值限定在固 ...

  6. Java 枚举(enum) 详解7种常见的用法<详细>

    JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 大师兄我[大师兄]又加上自己的理解,来帮助各位理解一下 ...

  7. Java 枚举(enum) 详解7种常见的用法

    JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 大师兄我[大师兄]又加上自己的理解,来帮助各位理解一下 ...

  8. [转载] java 枚举Enum源码解析

    参考链接: 使用Java枚举 应用场景 枚举是单例模式中的一种.面试官系统之设计模式(单例模式) 简单来讲就是只能实例化一次,线程安全且性能高.枚举通常用来列举一个类型的有限实例集合,我们可以使用常量 ...

  9. Java 枚举(enum) 详解7种常见的用法-小白笔记

    目录 用法一:常量 用法二:switch 用法三:向枚举中添加新方法 用法四:覆盖枚举的方法 用法五:实现接口 用法六:使用接口组织枚举 用法七:关于枚举集合的使用 用法一:常量 在JDK1.5 之前 ...

最新文章

  1. Xilinx 在文档中所用的 LC(logic cells) 与 LUT之间的换算关系
  2. 1、MyEclipse插件配置以及通过MyEclipse生成表对应的JPA代码
  3. iOS-NSThread编程详解
  4. 一道百度前端线上笔试题
  5. 机器学习python——python基础
  6. 原生js封装table表格操作,获取任意行列td,任意单行单列方法
  7. “约见”面试官系列之常见面试题之第六十一篇之IE和DOM事件流(建议收藏)
  8. 计算机应用基础 第三版 实验报告,计算机应用基础实验报告(windows).doc
  9. oracle与mysql的区别总结(一)
  10. jenkins中文插件_Jenkins学习笔记(一)
  11. Zookeeper的一次启动失败问题解决
  12. linux patch
  13. mysql grant show_【汇总】mysql常用操作【grant,show】
  14. excel2007如何增加控件?
  15. dell 恢复介质_使用Dell OS Recovery Tool制作Windows恢复U盘
  16. 小程序之100推荐:901~1000
  17. 如何将word文档转换成电子书?
  18. Azkaban环境配置-尚硅谷大数据培训
  19. name '__file__' is not defined
  20. vue全局配置_silent

热门文章

  1. 如何制作移动追踪马赛克?
  2. 数字图像与机器视觉基础2
  3. 中国白酒硬仗走向世界舞台——硬仗酒半年横扫国内外三大奖项
  4. QMUI_Android库 和 arch 库官方使用文档
  5. 编程零基础想做一名程序员,该怎么学习?首先要学习什么?
  6. 九龙证券|沪指震荡跌0.32%,金融、地产等板块走弱,信创概念逆势活跃
  7. 最靠谱的tak文件转码方案(转码成flac、wav等)
  8. 搭建RocketMQ踩的坑
  9. CMAKE查找库:find_package和pkg_check_moduls的区别
  10. linux管理工具:WinSCP使用教程