switch文でStringを使う
Javaのswitch文で、caseにString型の値を指定しようと思うとちょっと面倒臭い。
Enum型のオブジェクトを用意して、その中でString型の値を列挙しておく。
新たなデータを増やしたい場合は、Enum型のオブジェクトへの追加と、
caseの追加が必要になる。
※JavaSE7からは、String型も指定できるようになってるはず。
例えば、都道府県ごとに処理したい場合はこんな感じ。
enum Prefecture { Kyoto, Tokyo, Osaka } public class EnumPref { public static String getPref(Prefecture pref) { String result = ""; switch(pref) { case Kyoto: result = "京都"; break; case Tokyo: result = "東京"; break; case Osaka: result = "大阪"; break; default: result = "それ以外だよ!"; } return result; } }
うん、やっぱり面倒。
これと同じ処理をGroovyで書いてみるとこんな感じ。
def result def pref = "Tokyo" switch(pref) { case "Kyoto" : result = "京都"; break case "Tokyo" : result = "東京"; break case "Osaka" : result = "大阪"; break default : result = "それ以外だよ!" }