由于Enum.valueOf匹配不到枚举时会出现异常,这个可以用try...catch来解决,但是这样会导致代码往臃肿的道路上越走越远。

本文与其说是解决Enum.valueOf找不到枚举出现的异常还不如说是换了解决方案:

现在有这么一个枚举

/**

* 类型操作接口

*/

public interface TypeEnum {

Boolean ret(); // 表示是某个类型时返回结果

}

public enum ImageEnumImpl implements TypeEnum {

/**

* jpeg类型的图片

*/

JPEG {

@Override

public Boolean ret() {

return true;

}

},

/**

* jpg类型的图片

*/

JPG {

@Override

public Boolean ret() {

return true;

}

},

/**

* gif类型的图片

*/

GIF {

@Override

public Boolean ret() {

return true;

}

},

/**

* bmp类型的图片

*/

BMP {

@Override

public Boolean ret() {

return true;

}

},

/**

* png类型的图片

*/

PNG {

@Override

public Boolean ret() {

return true;

}

},

}

服务端需要通过枚举来判断支持上传的文件类型,可以使用Enum.valueOf来判断,而且很香

if (ImageEnumImpl.valueOf(exhibitionName).ret()){}

但是如果枚举类中并不存在这个类型就会抛出一个异常,导致无法用if的方式来判断,可以使用以下代码来操作,当枚举不存在时返回null

private ImageEnumImpl getIfPresent(String name) {

return Enums.getIfPresent(ImageEnumImpl.class, name).orNull();

}

使用这个方法,这样代码就好看多了

if (getIfPresent(exhibitionName) == null) {

return AjaxResult.error(400, "请上传正确的图片文件,如:jpg、png、bmp、gif!");

}

java enum valueof_Java 解决Enum.valueOf找不到枚举出现的异常相关推荐

  1. java compareto 函数,关于java:如何解决:compareTo 找不到符号

    这是用于家庭作业.但是,我已经编码了我作业的绝大多数内容.只有一个障碍.我也是Java的新手,所以我的术语可能有点偏离. 所以我有5种类型: 老师提供: NameInterface,这是Name的接口 ...

  2. java中valueof_Java中String.valueOf()方法的解释

    1. 由 基本数据型态转换成 StringString 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下列 ...

  3. java中未解决的编译问题_java – 我遇到了这个异常:未解决的编译问题

    我从项目中删除了jar(pdfBox,bouncycastle等)并将它们移动到另一个文件夹但我将它们包含在构建路径中后得到此异常- 在第一行eclipse显示此错误(构造函数PDFParser(In ...

  4. Error:Internal error: (java.lang.IllegalArgumentException) No enum constant org.jetbrains.jps.model.

    Java程序运行时出现以下错误: Error:Internal error: (java.lang.IllegalArgumentException) No enum constant org.jet ...

  5. 重新认识java(十) ---- Enum(枚举类)

    有的人说,不推荐使用枚举.有的人说,枚举很好用.究竟怎么使用,如何使用,仁者见仁智者见智.总之,先学会再说~ 为什么要引入枚举类 一个小案例 你写了一个小程序,不过好久不用了,突然有一天,你想使用一下 ...

  6. Java学习笔记之Enum枚举(1)

    Java学习笔记之Enum枚举(1) 前言 最基本的用法 了解Java中的Enum 后记 链接 前言 这是在学习Java过程中对自己遇到并得以解决的问题的一些记录,一方面是记录下来方便自己以后查询,一 ...

  7. Java源码分析--Enum

    Enum类是java.lang包中一个类,他是Java语言中所有枚举类型的公共基类 定义 public abstract class Enum<E extends Enum<E>&g ...

  8. Mybatis异常--java.lang.IllegalArgumentException: NO ENUM const class org.apache.ibatis.type.JdbcType.i

    转载:http://www.cnblogs.com/jl29233zx/p/6226522.html Mybatis异常--java.lang.IllegalArgumentException: NO ...

  9. java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.INT

    问题: Mybatis错误:java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.I ...

最新文章

  1. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验
  2. 清华男女图鉴 | 有电车会拍照,我在清华还是找不到女朋友
  3. python六十二: 析构方法
  4. 微信小程序 没有找到可以构建的npm包
  5. Vue精确到小数点后两位
  6. Android安全机制(2) Android Permission权限控制机制
  7. 钟南山:疫情1周或10天左右达到高峰,不会大规模增加了!
  8. Ubuntu禁用root登录
  9. linux 文件预读,一种基于Linux系统小文件预读功能的可靠性测试方法与流程
  10. Cadence PSpice 模型5:基于ABM库创建XC6209稳压芯片的PSpice模型实战图文教程
  11. STM8L101+si4463低功耗和自动唤醒配置
  12. php-screw 安装,php_screw安装,使用
  13. 运维工程师高阶面试总结
  14. Elasticsearch设置账号密码
  15. RFID应用安全+物联网安全标准
  16. 猿创征文|pycharm中的翻译插件translation以及将其更换为百度翻译获取ID和密钥的详细步骤
  17. 如何构建VoIP来是实现电话诈骗之——Asterisk的设置
  18. unity urp内置lit材质源码解析(下)
  19. clickhouse--求累计数值
  20. 计算机985专硕还是211学硕好,985专硕和211学硕哪个更值得读

热门文章

  1. 脚本语言和编译语言的区别
  2. python数据获取就业方向_基于Python的就业岗位数据获取与预处理
  3. Square Enix应该如何处理《最终幻想VII》翻拍的其余部分?
  4. 保护云安全的7个安全锦囊
  5. 前端上传文件status状态为0?
  6. git status 查看文件更改状态
  7. 让我一机灵的Java语言知识点
  8. Centos搭建dns服务器
  9. select语句的子句以及子查询
  10. 2021年中国航空运输行业发展回顾及2022年中国航空运输行业发展趋势分析[图]