Java枚举Enum与字符串的⽐较众所周知
Enum类重写了equals⽅法,使其与“==”判断⼀致
public final boolean equals(Object other){
return this==other;
}
但这只针对枚举这个类之间,很多时候我们不直接⽐较枚举类,⽽是⽐较具体的属性。
因为⼏乎前后端交互不会传递枚举这个对象,只会传递⾥⾯的属性⽐如code,name等等。
然后有两个思路:
1. getByCode通过code获取对应的枚举对象,⽐较枚举对象
ByCode("=")){
case LE:
case LT:
2. 枚举对象getCode返回code属性⽐较String
if(!Code().equals("=")){
log.info("不执⾏");
}
枚举和字符串
⼀个运算符枚举类
public enum MathEnum {
EQ("=","等于"),
GE(">=","⼤于或等于"),
LE("<=","⼩于或等于"),
GT(">","⼤于"),
LT("<","⼩于"),
BTN("between","在...之间"),;
private final String code;
private final String desc;
MathEnum(String code, String desc){
this.desc = desc;
}
public String getCode(){
return code;
}
public String getDesc(){
return desc;
}
public static MathEnum getByCode(String code){
if(code ==null){
return null;
}
for(MathEnum mathEnum : MathEnum.values()){
if(code.Code())){
return mathEnum;
}
}
return null;
}
public static List<String>getCodes(){
List<String> result = wArrayList();
for(MathEnum mathEnum : MathEnum.values()){
result.Code());
java switch case string}
return result;
}
}
会有这四种⽐较形式。其实Code()返回值本就是String类型的"=",本质是字符串之间的⽐较。
if(Code()!="="){
log.info("执⾏");
}
if("="!= Code()){
log.info("执⾏");
}
if(!"=".equals(Code())){
log.info("不执⾏");
}
if(!Code().equals("=")){
log.info("不执⾏");
}
回忆⼀下字符串的==和equals,当字符串相同,但是对象不同或者说地址不同时:
1. equals返回true
2. ==返回false
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论