前回<>次回
登場人物
- 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 件のコメント:
コメントを投稿