安卓使用switchcase 报错
时间: 2023-11-23 20:53:31 浏览: 211
在使用switch case语句时,可能会出现报错提示Resource IDs will be non-final by default in Android Gradle Plugin version 8.0,avoid using them in switch case statements。这是因为在Android Gradle插件8.0版中,资源ID将是非最终的,避免在switch case语句中使用它们,也就是说现在新版本中的ID是一个可以修改的变量了,而case 后面的值必须为常量,所以不能直接这样用了。解决这个问题的方法有两种:
1. 将switch case语句替换成if语句。
2. 在library中通过if-else-if条件语句来引用资源ID,而不是直接在switch case语句中使用它们。
另外,如果在使用switch case语句时出现报错,还可以尝试取消MainProject的Is library项勾选,或者使用快捷键Alt+Enter将整个语句替换成if语句。
相关问题
Android Studio最新版为什么switchcase语句报错
Android Studio最新版并不会自动将switch-case语句转换为Java 14的新特性switch表达式,因此可能会导致错误。如果您想使用Java 14的新特性,可以手动更改switch语句。否则,您需要使用传统的switch-case语句。
另外,如果您的switch-case语句中没有break语句,也会导致编译器报错。所以,请确保在每个case后面都加上break语句。
Android jdk17 switch语句报错Constant expression required
Android中使用JDK17以上版本的Java编译器,会出现switch语句报错"Constant expression required"的问题,这是因为在JDK17中,switch语句的条件表达式支持使用枚举类型,但是在Android中,这个特性还没有被支持。
解决方法是将switch语句的条件表达式改为使用整数类型或字符串类型,或者使用if-else语句来代替switch语句。例如,如果原来的代码是这样的:
```java
enum Color {
RED, GREEN, BLUE
}
Color color = Color.RED;
switch (color) {
case RED:
// do something
break;
case GREEN:
// do something
break;
case BLUE:
// do something
break;
}
```
可以将switch语句改为使用if-else语句:
```java
enum Color {
RED, GREEN, BLUE
}
Color color = Color.RED;
if (color == Color.RED) {
// do something
} else if (color == Color.GREEN) {
// do something
} else if (color == Color.BLUE) {
// do something
}
```
或者将Color类型的枚举值映射为整数类型的常量:
```java
enum Color {
RED(0), GREEN(1), BLUE(2);
private final int value;
Color(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
Color color = Color.RED;
switch (color.getValue()) {
case 0:
// do something
break;
case 1:
// do something
break;
case 2:
// do something
break;
}
```
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![jpg](https://img-home.csdnimg.cn/images/20210720090814.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)