新版AndroidStudio使用switch-case语句时出现Constant expression required错误

avatar
作者
筋斗云
阅读量:0

原因:

        在新版的Android Studio中使用JDK17以上版本,会出现switch语句报错"Constant expression required"的问题,这是因为在JDK17中switch语句的条件表达式支持使用枚举类型,而这个特性还没有被支持。

解决方法:

①在gradle.properties配置文件下添加代码(推荐,最简便)

android.nonFinalResIds=false

②替换为if-else语法

c4e7af1e7e144b0ea3ba265d3e0162c7.png

③降低jdk版本(不推荐,新版AS强制要求jdk版本)

④使用枚举替换(写法比较麻烦,仅供参考)

创建一个枚举类

bc23787bf20145159373bd4cc7331e06.png

在Activity中声明成员变量

eec9bb8016654679a0eb22b5d5264bf2.png

然后,将枚举类型与按钮关联起来。你可以使用Map来将按钮的资源ID与枚举类型进行映射。在Activity的onCreate方法中,或者Fragment的onCreateView方法中,进行如下操作:

16f05e45c6dd46cc8bfe9d0141d2b86f.png

最后,在你的Activity或Fragment中实现onButtonClick方法,根据枚举类型来执行相应的逻辑:

7d36313f57f6484cb999db73fa3eec8a.png

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!