我想在Java 1.7中使用switch语句,它也允许switch(someString)
。但是,如果我将java编译器更改为1.7,则项目会中断,我必须返回1.5或使用android tools-> fix project
。
有没有办法在Android开发中使用带有字符串的开关?
答案 0 :(得分:5)
修改
就我个人而言,我没有尝试,但根据Android System Requirements页面,它不受支持。也就是说,这并不意味着它不起作用,只是因为你不太可能从Google / Android那里获得关于这个主题的太多/任何帮助。
JDK 5或JDK 6(仅JRE是不够的)
在一个可能积极的方面,(在@Emil H及其评论的帮助下找到)我在网上找到了这些信息:
程序通常用Java的方言编写并编译为字节码。然后将它们从与Java虚拟机兼容的.class文件转换为与Dalvik兼容的.dex(Dalvik可执行文件)文件......
如果字节码没有从版本6更改为7(不包括@David Schwartz提到的添加的invokedynamic
,switch
语句不应该使用。),那么它应该工作..
答案 1 :(得分:1)
你应该可以在机器人中使用JDK7。检查相关问题的答案:
https://stackoverflow.com/a/7481063/355499
编辑:
在本地尝试过,一切都可以正常使用JDK7(它是我在开发时使用的)。但是,在我的android项目中,我无法找到将合规性级别从1.6更改为1.7的方法。如果你真的想这样做,我猜你不得不通过除Eclipse之外的其他方式来构建你的项目。例如,使用蚂蚁脚本或类似物。可能会比它的价值更多的工作。
答案 2 :(得分:0)
现在不可能: 虽然在Java 1.7编译器中引入了带有String的 switch 语句,但不幸的是Android需要1.6或1.5版本。 所以我们要等。