java - 将 Switch 语句与字符串一起使用是否安全

标签 java android string switch-statement

我有 JDK7 并且可以在我的开发机器上使用带字符串的开关。

我的问题是,该应用程序是否会在某些用户的系统上崩溃?换句话说,随意使用它们安全吗?

我知道我可能会将 JDK 与 VM 混淆,但请原谅我的无知。

最佳答案

是的,使用它们是安全的。

String 上的

switch 是通过更改编译器以在不使用新指令的情况下实现必要的字节码转换而引入 Java 的。也就是说,更改只是编译器的一个。

如果在 Android 中实现类似,则没有技术限制阻止在 SDK 19 下编译的 APK,它支持 switch on String 在运行之前的设备上使用到版本 19。

的确,我很确定我自己使用了这个属性。您需要做的就是确保 targetSDKversionmaxSDKversion>= 19。由于我上面讨论的属性,minSDKversion 可以更低。

它的 Java 实现在 Project Coin 下,并在 Oracle 网站上有详细介绍。 https://blogs.oracle.com/darcy/entry/project_coin_string_switch_anatomy

另请参阅此答案:Android coding with switch (String)

另见 developer docs for Gradle plugin

关于java - 将 Switch 语句与字符串一起使用是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24565031/

相关文章:

Android - 无法启动 avd 模拟器

android - 更新安卓应用

python - 使用正则表达式从行迭代中获取信息并将数据存储在嵌套字典中

c# - 如何从另一个列表中删除列表中的字符串?

c++ - QT C++ 读取每行同时包含 int 和 QString 的文件

java - 方法返回类型混淆

java - 当我尝试调用 org.apache.activemq.ActiveMQSession.createDurableConsumer 时,为什么会出现 java.lang.AbstractMethodError

android - Kotlin 导航 fragment 中的 searchview.setonquerytextlistener() 类型不匹配

java - 优化的 string.endsWith() 工作方式。

java - '警告 BG8102 : Class X has unknown base type Y' warning while binding java code in xamarin