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

由于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!");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值