如何在Java中创建开关块?
我有两个类:在第一个类中,我有返回int值的静态方法和const-NETWORK_EXCEPTION(public static final int-NETWORK_EXCEPTION=1),在第二个类中,我从静态方法中获得返回值,并将其用于开关块:如何在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 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
。