前回<>次回
登場人物
- NRT
猪突猛進なプログラマー
考える前に体力勝負でプログラミングするタイプ。
たまに鋭い洞察力を見せるため、
周囲からは落ち着いてさえいれば…と言われている。
- SSK
冷静沈着なプログラマー
20:80の法則に習い、実は仕事の一部分を学習に当てている。
他の人はそれに気がついていない。
Java7についても以前からチェックはしていた。
- SKR
紅一点なプログラマー
暗算は早いけど、プログラミングはそこそこ。
※登場人物は忍者ではありません。架空のプログラマーです。
新機能:Strings in switch Statements
新機能:Strings in switch Statements
SSK「どうした?」
SKR「SSK君なら、これをどう実装するかと思って。」
public int toConstantFieldValues(String dayOfWeek) {
if (dayOfWeek == null) {
throw new IllegalArgumentException();
} else if (dayOfWeek.equals("日")) {
return 1;
} else if (dayOfWeek.equals("月")) {
return 2;
} else if (dayOfWeek.equals("火")) {
return 3;
} else if (dayOfWeek.equals("水")) {
return 4;
} else if (dayOfWeek.equals("木")) {
return 5;
} else if (dayOfWeek.equals("金")) {
return 6;
} else if (dayOfWeek.equals("土")) {
return 7;
} else {
throw new IllegalArgumentException();
}
}SSK「…言いたいことは分かった。
もっといいやり方がないかってことだな。」
SKR「SSK君だったら、やっぱりハッシュテーブルを使う?」
SSK「(NRTならそんな疑問を抱くこともないんだろうな…まあいい)
いや使わない。同じ実装にする。
大した個数じゃないし、何より変化しない要素だ。
暦が変わったのなら話は違うけどな。」
SKR「う~ん、何か歯がゆいわね~。他に手段はないの?」
SSK「enumを使うっていう手もあるが、
割に合わない複雑さになると思う。
Java SE 7になれば改善されるんだが…」
SKR「え?どうなるの?」
SSK「switch文で文字列が使えるようになる。
さっきのはこう書き直せる。」
public int toConstantFieldValues(String dayOfWeek) {
if (dayOfWeek == null) {
throw new IllegalArgumentException();
}
switch (dayOfWeek) {
case "日": return 1;
case "月": return 2;
case "火": return 3;
case "水": return 4;
case "木": return 5;
case "金": return 6;
case "土": return 7;
default: throw new IllegalArgumentException();
}
}SKR「ふ~ん、nullチェックは変わらないのね?」
SSK「ああ、チェック無しだとNullPointerExceptionになる。
defaultに来るのはnullを除いたその他になる。」
SKR「これいいわね~、正規表現とかはできないの?」
SSK「(仕様を斜め読み)…できないみたいだな。
あくまでもequalsの置換だけのようだ。」
SKR「文字列なんだから、そこまでやって欲しかったわね。」
SSK「equalsとmatchesの見分けが付けば、俺もありだと思う。」
SKR「あ~そっか、いつも正規表現するってわけじゃないものね。」
SSK「今後の発展に期待…かな。」
前回<>次回
0 件のコメント:
コメントを投稿