java枚举比较大小写_字符串与Java枚举的不区分大小写的匹配

Java为每个Enum< T>提供一个valueOf()方法。对象,所以给出一个枚举

public enum Day {

Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday

}

可以做一个查找

Day day = Day.valueOf("Monday");

如果传递给valueOf()的字符串与现有Day值不匹配(区分大小写),则会抛出IllegalArgumentException异常。

要进行不区分大小写的匹配,可以在Day枚举之内编写一个自定义方法,例如

public static Day lookup(String day) {

for (Day d : Day.values()) {

if (d.name().equalsIgnoreCase(day)) {

return type;

}

}

return null;

}

有没有任何通用方式,不使用缓存值或任何其他额外的对象来编写一个像上述一样的静态lookup()方法(即不是每个枚举),因为values()方法被隐式地添加到Enum< E>在编译时上课?

这种“通用”lookup()方法的签名将类似于Enum.valueOf()方法,即:

public static > T lookup(Class enumType, String name);

并且它将完全实现任何枚举的Day.lookup()方法的功能,而不需要为每个枚举重写相同的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值