Constant+expression+required
时间: 2023-12-27 19:04:30 浏览: 20
Constant expression required是一个编译错误,它表示在使用枚举类的时候,需要使用常量表达式作为参数,而不是变量或者非常量表达式。这是因为在编译时,枚举类的成员必须是在编译期间就已经确定的常量。
在你提供的枚举类中,ONE、TWO、THREE和FOUR是枚举类的成员,它们的值是常量,可以在编译期间确定。而在getByValue方法中,你使用了一个变量value作为参数,这是一个非常量表达式,因此会导致编译错误Constant expression required。
为了解决这个问题,你可以将getByValue方法中的参数改为常量表达式,或者使用switch语句来替代if语句。下面是两种解决方法的示例代码:
1. 将参数改为常量表达式:
```java
public static NumberForCaseEnum getByValue(){
int value = 1; // 常量表达式
for(NumberForCaseEnum x:values()){
if(x.getIndex()==value){
return x;
}
}
return null;
}
```
2. 使用switch语句:
```java
public static NumberForCaseEnum getByValue(int value){
switch(value){
case 1:
return ONE;
case 2:
return TWO;
case 3:
return THREE;
case 4:
return FOUR;
default:
return null;
}
}
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)