转载:java8中switch(String)的错误解决

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/sinat_31726559/article/details/51659601

今敲着代遇到错误,因为以前用的是jdk1.7,这种switch(String)格式是可以支持的,但是在jdk1.8中却不行,思考之后摸索出解决办法

以下是我报错的代码一段:


 
 
  1. private boolean checkName(String fileName, String name, String op) {
  2. switch (op) { --->在这里提示我要改用jdk1.7
  3. case "no": // 不用检查
  4. return true;
  5. case "contains": // 是否包含,包含返回true
  6. return fileName.contains(name) ? true : false;
  7. case "equals": // 是否相等,相等返回true
  8. return fileName.equals(name) ? true : false;
  9. case "noequal": // 是否不相等,不相等返回true
  10. return fileName.equals(name) ? false : true;
  11. default:
  12. log.info( "wrong op:{}", op);
  13. break;
  14. }
  15. return false;
  16. }

我怎么可能会去换jdk呢,于是看着提示说是利用枚举可以解决,我就试了下,一下是我代码:


 
 
  1. //定义枚举
  2. enum op{no, contains, equals, noequal}
  3. @Service
  4. public class HdfsService {
  5. .......省略类中的其他方法了,这里就不写了
  6.   private boolean checkName(String fileName, String name, op p) {
  7. op c = null;
  8. switch (c) {
  9. case no: //不用检查
  10. return true;
  11. case contains: //是否包含,包含返回true
  12. return fileName.contains(name) ? true : false;
  13. case equals: //是否相等,相等返回true
  14. return fileName.equals(name) ? true : false;
  15. case noequal: //是否不相等,不相等返回true
  16. return fileName.equals(name) ? false : true;
  17. default:
  18. log.info( "wrong op:{}", p);
  19. break;
  20. }
  21. return false;
  22. }
  23. }

这样这个程序就能正确编译了,谢谢,不足可以提出来讨论


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值