Jas*_*n S 3 java case switch-statement
我糊涂了.以下代码有错误("..."代表省略代码):
int byteOrder = ...;
switch (byteOrder)
{
case HDF5Constants.H5T_ORDER_BE:
return ByteOrder.BIG_ENDIAN;
...
}
Run Code Online (Sandbox Code Playgroud)
错误在case语句上,Eclipse抱怨"case表达式必须是常量表达式".我在源文件中查找了这个,它有很长的列表,如下所示:
final public static int H5T_ORDER_BE = H5.J2C( JH5T_ORDER_BE );
Run Code Online (Sandbox Code Playgroud)
我以为你可以final public static int在switch语句中使用常量作为例子.我错了吗???
Vin*_*jip 10
从你所展示H5T_ORDER_BE的不是编译时常量(它需要它) - 它在类的初始化期间在运行时进行评估.如果它被评估为常量,例如123(而不是看起来像是静态方法调用)那么编译器就不会抱怨.
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |