Android switch语句报错Constant expression required

这篇具有很好参考价值的文章主要介绍了Android switch语句报错Constant expression required。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android  switch语句报错Constant expression required

 文章来源地址https://www.toymoban.com/news/detail-837801.html

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

Android  switch语句报错Constant expression required

 

    原因:在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,也能解决问题。

 

到了这里,关于Android switch语句报错Constant expression required的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】switch 语句

    目录 1、缘起  2、笔记整理 3、if 和 switch 区别  4、总结         最近(2023-04-29)在 BiliBili 黑马程序员学习 C++  编程语言,今天学习到了 switch 语句 。以前在学习 C 语言  的时候,对这块知识点掌握的不是很好,总是遗忘。所以这次在学习 C++ 的时候,为了加强这块知

    2024年02月01日
    浏览(40)
  • Java switch case 语句

    Java 的 switch case 语句是一种常用的控制流语句,用于基于不同的输入值执行不同的操作。本文将详细介绍 Java switch case 语句的作用、用法以及在实际工作中的应用。 一、switch case 语句的作用 switch case 语句是一种多分支条件语句,它基于不同的输入值,执行不同的操作。swit

    2024年02月11日
    浏览(37)
  • Java 流程控制 Switch 语句

    一、什么是Switch语句? Switch语句是Java中的一种流程控制语句,用于根据表达式的值选择不同的执行路径。Switch语句通常用于多个条件的判断,比如根据用户输入的不同选项执行不同的操作。 二、语法说明 Switch语句的基本语法如下: Switch语句包含一个表达式和多个case语句块

    2024年02月09日
    浏览(49)
  • C#中的switch语句详解

    在C#编程语言中,switch语句是一种用于根据不同的条件执行不同代码块的控制流结构。它允许程序根据一个表达式的值,选择执行与该值相关联的特定代码块。本文将详细介绍switch语句的语法、用法和示例代码。 switch语句的基本语法如下: 首先,我们需要一个表达式,它的值

    2024年01月17日
    浏览(40)
  • C#系列之switch语句

    今天,我们将对于switch语句做一个较为简单的了解。在日后的Unity内部C#脚本的使用做好充分的准备。我们将通过一些实例展开今天的内容。 1.基本语法 switch(变量) { //变量 == 常量,执行case和break之间的代码 case 常量:          满足条件之下的代码逻辑;         break; c

    2024年02月11日
    浏览(43)
  • (上) C语言中的语句分类及分支语句:if语句、switch语句介绍

    目录 前言 一、语句的分类 1. 空语句 2. 表达式语句 3. 函数调用语句 4. 复合语句 5. 控制语句 二、分支语句 1. if语句 (1) if的使用 (2) else的使用 (3) 分支中包含多条语句 (4) 嵌套if (5) 悬空else问题 2. switch语句 (1) if语句和switch语句的对比 (2) switch语句中的break (3) switch语句中的defa

    2024年01月22日
    浏览(70)
  • C/C++语法Switch语句

    语法形式如下:  还有另一种语法形式: 这个形式和第一种其实没什么差别,只是case 1和case 2里面的语句块是空而已,所以这时无论你输入1,2,3,都会进入case 3的语句块执行。  1.每一个case后面都要跟一个空格然后再跟整形表达式,这是初学者很容易犯的错误,一定要注意。

    2024年02月13日
    浏览(54)
  • Python 进阶语法:switch语句扩展

    switch 语句是一种多分支选择结构,用于基于不同的情况执行不同的代码块。它通常用于处理多个明确的、互斥的条件,每个条件对应一个 case 子句。与 if-else 语句相比, switch 语句在处理多个明确值的情况时更加直观和易读。 1.1  switch语句的语法 基本的 switch 语句语法如下:

    2024年04月28日
    浏览(45)
  • 【C语言】switch语句的理解

    任何具有判定能力的语法结构,都必须具备 判定+分支 功能 在 switch 语法结构中: case 完成的判定功能 break 完成的是分支功能 default 处理异常情况 举例 根据输入的数字,打印出今天是星期几 编译运行: 每次写 switch 语句时,即使程序真的不需要 default 处理,也应该保留以下

    2023年04月09日
    浏览(39)
  • Java switch case语句详解

    if…else 语句可以用来描述一个“二岔路口”,我们只能选择其中一条路来继续走,然而生活中经常会碰到“多岔路口”的情况。switch 语句提供了 if 语句的一个变通形式,可以从多个语句块中选择其中的一个执行。 switch 语句是 Java 的多路分支语句。它提供了一种基于一个表

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包