日々常々

ふつうのプログラマがあたりまえにしたいこと。

Java7 体当たり/strings switch

Switch に String が使えるようになるみたいです。
String in switch Statements
switch に使えるのは int か Enum だったのですけれど、この度 String も出来るようになりました。単なる1クラスのはずなのに優遇されまくってる String さんです。

String result;
switch ("あ") {
    case "あ":
        result = "a";
        break;
    case "い":
        result = "i";
        break;
    default:
        result = "u";
}

System.out.println(result); // => a

String を if で判定するときは、幾つか続けてやる事が多いと思います。そういう時は switch の方が多少効率的っぽいです。if の方が良い場合は、判定する String の値が null の可能性がある時です。

String param = null;

if ("あ".equals(param)) { // OK
	// 略
}

switch (param) { // NullPointerException
	case "あ" :
		// 略
		break;
}

最近は null 否定派になってきてたりします。