3

よくわかりません。次のコードにはエラーがあります (「...」は省略されたコードを表します):

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

エラーはケースステートメントにあり、Eclipseは「ケース式は定数式でなければなりません」と不平を言います。これについてソースファイルを調べたところ、次のような行の長いリストがあります。

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

final public static intswitch ステートメントのケースとして定数を使用できると思いました。私が間違っている???

4

2 に答える 2

10

あなたが示したものH5T_ORDER_BEは、コンパイル時の定数ではありません(そうである必要があります)-クラスの初期化中に実行時に評価されます。123(静的メソッド呼び出しのように見えるものではなく)などの定数に評価された場合、コンパイラは文句を言いません。

于 2009-07-20T19:25:49.173 に答える
7

あなた間違っています!:-)

Case ステートメントは、定数のみを参照できます。静的変数は実行時に初期化されるため、ここでは使用できません。

于 2009-07-20T19:24:43.140 に答える