gpt4 book ai didi

java - 定义像 #define 这样的常量,可以在 java 中的 switch 语句中使用

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:28 26 4
gpt4 key购买 nike

我想定义一些常量,例如 #define myXYZ 1,这样我也可以在 switch 语句中使用它们。

当我做经常建议的事情时

public static final Integer myXYZ = 1;

case Constants.myXYZ:

我收到编译器消息case expression must be constant

解决这个问题的最佳方法是什么?

谢谢!

最佳答案

只需将其更改为 int 就可以了:

public static final int myXYZ = 1;

这是因为 case 值必须是常量表达式或枚举名称。来自 section 15.28 JLS 的(常量表达式):

A compile-time constant expression is an expression denoting a value of primitive type or a String that does not complete abruptly and is composed using only the following [...]

因此 int 类型的表达式可以是常量表达式,但 Integer 类型的表达式不能。

如果这是一组值,作为一个概念本身就有意义,那么枚举可能更有意义。

关于java - 定义像 #define 这样的常量,可以在 java 中的 switch 语句中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645766/

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