如何在Java中创建开关块?

如何在Java中创建开关块?,java,Java,我有两个类:在第一个类中,我有返回int值的静态方法和const-NETWORK_EXCEPTION(public static final int-NETWORK_EXCEPTION=1),在第二个类中,我从静态方法中获得返回值,并将其用于开关块: int response=NetworkUtilities.addNewUser(email, name, number); switch (response) { case (NetworkUtilities.NETWORK_EXCEPT

我有两个类:在第一个类中,我有返回int值的静态方法和const-NETWORK_EXCEPTION(public static final int-NETWORK_EXCEPTION=1),在第二个类中,我从静态方法中获得返回值,并将其用于开关块:

int response=NetworkUtilities.addNewUser(email, name, number);
switch (response) {
    case (NetworkUtilities.NETWORK_EXCEPTION):
        break;
} 
但我总是得到以下信息:“大小写表达式必须是常量表达式”。如何创建开关块?我可能需要使用枚举吗?请给我一个例子或修复我的代码

public static int NETWORK_EXCEPTION=-1;
public static int EXIST_EXCEPTION=0;

编辑:现在您已经发布了声明,很清楚:

public static int NETWORK_EXCEPTION=-1;
public static int EXIST_EXCEPTION=0;
应该是

public static final int NETWORK_EXCEPTION=-1;
public static final int EXIST_EXCEPTION=0;
请注意
最终部分
如果没有这一部分,它们就不是常量。(在您之前的问题文本中,您声称您已将其声明为
最终版
——准确地说,这是值得的:)

顺便说一句,假设您使用包括“exception”在内的名称声明这些异常,您确定不应该只是抛出异常吗


那应该很好。简短但完整的程序,以演示:

class Constants {
    public static final int NETWORK_EXCEPTION = 1;
}

public class Test {
    public static void main(String[] args) {
        int value = Integer.parseInt(args[0]);

        switch (value) {
            case Constants.NETWORK_EXCEPTION:
                break;
        }
    }
}
您确定它已声明为
最终版
?值仅为
1
,而不是某个方法调用的结果


如果你能发布一个类似的简短但完整的失败程序,那会有所帮助。

编辑:现在你已经发布了声明,很清楚:

public static int NETWORK_EXCEPTION=-1;
public static int EXIST_EXCEPTION=0;
应该是

public static final int NETWORK_EXCEPTION=-1;
public static final int EXIST_EXCEPTION=0;
请注意
最终部分
如果没有这一部分,它们就不是常量。(在您之前的问题文本中,您声称您已将其声明为
最终版
——准确地说,这是值得的:)

顺便说一句,假设您使用包括“exception”在内的名称声明这些异常,您确定不应该只是抛出异常吗


那应该很好。简短但完整的程序,以演示:

class Constants {
    public static final int NETWORK_EXCEPTION = 1;
}

public class Test {
    public static void main(String[] args) {
        int value = Integer.parseInt(args[0]);

        switch (value) {
            case Constants.NETWORK_EXCEPTION:
                break;
        }
    }
}
您确定它已声明为
最终版
?值仅为
1
,而不是某个方法调用的结果


如果你能发布一个类似的简短但完整的失败程序,这会有帮助。

你能公布常数网络例外的实际偏差吗?你的
公共静态最终int
中没有
final
。你能公布常数网络例外的实际偏差吗?你的
公共静态最终int
中没有
final