版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
今敲着代遇到错误,因为以前用的是jdk1.7,这种switch(String)格式是可以支持的,但是在jdk1.8中却不行,思考之后摸索出解决办法
以下是我报错的代码一段:
-
private boolean checkName(String fileName, String name, String op) {
-
switch (op) { --->在这里提示我要改用jdk1.7
-
case
"no":
// 不用检查
-
return
true;
-
case
"contains":
// 是否包含,包含返回true
-
return fileName.contains(name) ?
true :
false;
-
case
"equals":
// 是否相等,相等返回true
-
return fileName.equals(name) ?
true :
false;
-
case
"noequal":
// 是否不相等,不相等返回true
-
return fileName.equals(name) ?
false :
true;
-
-
default:
-
log.info(
"wrong op:{}", op);
-
break;
-
}
-
return
false;
-
}
我怎么可能会去换jdk呢,于是看着提示说是利用枚举可以解决,我就试了下,一下是我代码:
-
//定义枚举
-
enum op{no, contains, equals, noequal}
-
-
@Service
-
public
class HdfsService {
-
.......省略类中的其他方法了,这里就不写了
-
private boolean checkName(String fileName, String name, op p) {
-
op c =
null;
-
switch (c) {
-
case no:
//不用检查
-
return
true;
-
case contains:
//是否包含,包含返回true
-
return fileName.contains(name) ?
true :
false;
-
case equals:
//是否相等,相等返回true
-
return fileName.equals(name) ?
true :
false;
-
case noequal:
//是否不相等,不相等返回true
-
return fileName.equals(name) ?
false :
true;
-
default:
-
log.info(
"wrong op:{}", p);
-
break;
-
}
-
return
false;
-
}
-
-
}
这样这个程序就能正确编译了,谢谢,不足可以提出来讨论