Java枚举异常处理及解决方案 您所在的位置:网站首页 java报错找不到符号枚举类 Java枚举异常处理及解决方案

Java枚举异常处理及解决方案

2024-07-15 12:10| 来源: 网络整理| 查看: 265

由于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 实验室设备网 版权所有