Java枚举异常处理及解决方案 | 您所在的位置:网站首页 › java报错找不到符号枚举类 › Java枚举异常处理及解决方案 |
由于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!"); } |
CopyRight 2018-2019 实验室设备网 版权所有 |