gpt4 book ai didi

java - 如何在Java中创建switch block ?

转载 作者:行者123 更新时间:2023-12-01 17:34:38 25 4
gpt4 key购买 nike

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

int response=NetworkUtilities.addNewUser(email, name, number);
switch (response) {
case (NetworkUtilities.NETWORK_EXCEPTION):
break;
}

但我总是收到以下消息:“case 表达式必须是常量表达式”。如何创建开关 block ?我可能需要使用枚举吗?请给我一个例子或修复我的代码。

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;

请注意final 部分 - 没有它它们就不是常量。 (在您之前的问题文本中,您声称您将其声明为最终 - 对此保持精确是值得的:)

顺便说一句,鉴于您声明这些名称中包含“异常”,您确定不应该只是抛出异常吗?

<小时/>

那应该绝对没问题。简短但完整的演示程序:

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 而不是某些方法调用的结果?

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

关于java - 如何在Java中创建switch block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789909/

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