随笔 - 322  文章 - 0  评论 - 4  阅读 - 76954

Android switch语句报错Constant expression required

 

方案一 :可以用 if来替代  如下 

 

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

方案2:换JDK版本

因为JDK17暂时不支持这个特性,可以换成17以下版本可以,JDK8和JDK11都可以

 

方案3:使用枚举替换

不过这个太麻烦,不太推荐

首先,创建一个枚举类,用于表示不同的按钮。例如:

 

1 public enum ButtonType {
2     BTN_ALERT,
3     BTN_OTHER1,
4     BTN_OTHER2,
5     // 添加更多按钮类型
6 }

接下来,在你的Activity或Fragment中,声明一个成员变量来表示当前按钮的类型:

 1 private ButtonType currentButtonType; 

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

复制代码
 1  Map<Integer, ButtonType> buttonTypeMap = new HashMap<>();
 2 buttonTypeMap.put(R.id.bnt_alert, ButtonType.BTN_ALERT);
 3 buttonTypeMap.put(R.id.bnt_other1, ButtonType.BTN_OTHER1);
 4 buttonTypeMap.put(R.id.bnt_other2, ButtonType.BTN_OTHER2);
 5 // 添加更多按钮类型的映射
 6 
 7 // 设置按钮的点击事件
 8 findViewById(R.id.bnt_alert).setOnClickListener(v -> onButtonClick(ButtonType.BTN_ALERT));
 9 findViewById(R.id.bnt_other1).setOnClickListener(v -> onButtonClick(ButtonType.BTN_OTHER1));
10 findViewById(R.id.bnt_other2).setOnClickListener(v -> onButtonClick(ButtonType.BTN_OTHER2));
11 // 添加更多按钮的点击事件
复制代码

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

复制代码
 1 private void onButtonClick(ButtonType buttonType) {
 2     // 根据按钮类型执行相应的逻辑
 3     switch (buttonType) {
 4         case BTN_ALERT:
 5             // 处理 BTN_ALERT 按钮点击事件
 6             break;
 7         case BTN_OTHER1:
 8             // 处理 BTN_OTHER1 按钮点击事件
 9             break;
10         case BTN_OTHER2:
11             // 处理 BTN_OTHER2 按钮点击事件
12             break;
13         // 处理更多按钮类型的点击事件
14     }
15 }
复制代码

 

通过这种方式,你可以使用枚举类型来表示不同的按钮,并在点击事件中使用枚举类型,而不是直接使用资源ID,也能解决问题。

 

posted on   Bytezero!  阅读(2373)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示