Java switch 语句使用 String 参数

原文同步至 http://www.waylau.com/java-switch-use-string/

当我尝试在 switch 语句使用 String 参数时(注意ctrType为字符串)

1 switch (ctrType) { 2 case "01" : 3 exceptionType = "读FC参数数据"; 4 break; 5 case "03" : 6 exceptionType = "读FC保存的当前表计数据"; 7 break; 8 default: 9 exceptionType = "未知控制码:"+ctrType; 10 }
<!-- more -->

提示如下错误:

Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted

意思是说,我的 jre 本版本太低,不支持。据查 在 Java 7之前,switch 只能支持 byte、short、char、int或者其对应的封装类以及 Enum 类型。在 Java 7中,String支持也终于被加上了。

解决

普通项目

安装 JDK 1.7+,在项目中更改配置引入该 JDK 版本依赖库。

Maven 项目

更改 pom.xml 文件,设置 maven-compiler-plugin 插件目标版本为 1.7+,例如

1 <plugins> 2 ... 3 <plugin> 4 <groupId>org.apache.maven.plugins</groupId> 5 <artifactId>maven-compiler-plugin</artifactId> 6 <version>3.2</version> 7 <configuration> 8 <source>1.7</source> 9 <target>1.7</target> 10 </configuration> 11 </plugin> 12 ... 13 </plugins>
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

P2P技术揭秘.P2P网络技术原理与典型系统开发

Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E