gpt4 book ai didi

java - switch 语句中需要常量表达式

转载 作者:行者123 更新时间:2023-12-01 21:16:50 33 4
gpt4 key购买 nike

我想在 switch 语句中使用全局常量。我以这种方式在名为 ColorManager 的单例中编写了常量

public static final int blue = 3;
public static final int red = 5;
public static final int black = 7;

在我的HomeActivity中我编写了这段代码

public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
ColorManager cm = ColorManager.getInstance(this);
switch (requestCode) {
case cm.blue: {
}
case cm.red: {
}
case cm.black: {
}
}
}

但是我在 switch 语句中遇到错误:

Constant expression required

这些值是最终的,所以恒定,我不明白为什么会收到此错误。我发现了类似的主题,但在所有情况下,属性都未声明为最终属性。

最佳答案

如果您静态访问静态最终字段,它将编译;例如case ColorManager.blue:。如果您尝试从变量 cm 访问 then,则会阻止编译器将它们识别为编译时常量。

关于java - switch 语句中需要常量表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39870511/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com