有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我想在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

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


共 (2) 个答案

  1. # 1 楼答案

    使用类名。变量,即颜色管理器。红色的

  2. # 2 楼答案

    试试这个代码

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