Java小技巧-巧用枚举类型处理判断

以前也遇到过类似的问题。就是对于一些参数,比如type之类的,对不同的type需要进行不同的处理。

对于这种情况,使用switch应该算是最恰当的了,但问题是switch并不支持String类型(听说Java8能支持了),所以当type是一个String对象时,就只能不断的if/else if/else了。

在这个时候,枚举类型就派上用场了。我们可以通过创建一个包含相关type的枚举类来解决问题。

package enumlation;

public enum TypeEnum {

	type1, type2, type3;
	
	public static boolean contains(String type){
		for(TypeEnum typeEnum : TypeEnum.values()){
			if(typeEnum.name().equals(type)){
				return true;
			}
		}
		return false;
	}
	
	public static void main(String[] args){
		String type = "type";
		TypeEnum typeEnum;
		if(!TypeEnum.contains(type)){
			typeEnum = TypeEnum.type1;
		}
		else{
			typeEnum = TypeEnum.valueOf(type);
		}
		switch (typeEnum) {
		case type1:
			System.out.println("do type1");
			break;
		case type2:
			System.out.println("do type2");
			break;
		case type3:
			System.out.println("do type3");
			break;

		default:
			break;
		}
	}
}
通过这种方式,就可以很好的解决String的switch判断。另外,还可以通过在枚举类中添加自定义的属性和方法来达成一些其他的目的。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值