Javaのswitch-caseの小ネタ

Javaのswitch-case内で、同名の変数を2回宣言するとコンパイルエラーとなる場合がある。

switch(value){
    case 1:
        int i = 0;
        break;
    default:
        int i = 1; // エラー
        break;
}

これを回避するには、各case毎に{}によるブロックを作成すれば良い。

switch(value){
    case 1: {
        int i = 0;
        break;
    }
    default: {
        int i = 1; // OK
        break;
    }
}

または

switch(value){
    case 1:
        {
            int i = 0;
        }
        break;
    default:
        {
            int i = 1; // OK
        }
        break;
}