1

コードをデバッグしているときに、列挙型のswitchステートメントでこの興味深いシナリオに出くわしました。

私には、コンパイルしてはいけないように見え、ばかげた間違いを防ぐことができましたが、この構文を使用できる場所に欠けているものはありますか?

私のJavaバージョンは1.6.0_10です

private enum E_TEST
{
    A, B, C, D, E
}

public static void main( String[] args )
{
    for( E_TEST e : E_TEST.values() )
    {
        switch( e )
        {
            case A: B: C: D: E:
            {
                System.out.println( e );
                break;
            }
        }
    }
}

完全を期すために、このコードの出力は次のとおりです。

A
4

1 に答える 1

4

次の行にあるため、コードはコンパイルされます

        case A: B: C: D: E:

B:、C:、D:、E:はラベルです。

その行はあるべきであるため、それはあなたが期待することをしません

case A: case B: case C: case D: case E:

dasblinkenlightが彼の投稿で述べたように。

于 2012-10-08T00:29:04.213 に答える