gpt4 book ai didi

java - final public static int 不能用在 switch 语句中?

转载 作者:搜寻专家 更新时间:2023-11-01 04:02:33 24 4
gpt4 key购买 nike

我很困惑。以下代码有错误(“...”代表省略的代码):

int byteOrder = ...;
switch (byteOrder)
{
case HDF5Constants.H5T_ORDER_BE:
return ByteOrder.BIG_ENDIAN;
...
}

错误在 case 语句上,Eclipse 提示“case 表达式必须是常量表达式”。我为此查看了源文件,它有一长串这样的行:

final public static int H5T_ORDER_BE = H5.J2C( JH5T_ORDER_BE );

我认为您可以使用 final public static int 常量作为 switch 语句中的 case。我错了吗???

最佳答案

根据您所展示的内容,H5T_ORDER_BE 不是编译时常量(它需要是)- 它是在类初始化期间的运行时求值的。如果它计算为常量,例如 123(而不是看起来像是静态方法调用的东西),那么编译器就不会报错。

关于java - final public static int 不能用在 switch 语句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1155409/

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