一流のプログラマ、三流のプログラマ
Advertisements
「君がプログラマとしてどの位置にいるかなんてのは、Javaの簡単なif文を書かせるを書かせるだけでわかるんだ」
まるでガチャをコンプリートしたような得意げな笑みを浮かべて、先輩は言った。
「いいか?ある文字列の中身を比較するとしよう。
String型のhoge = "hoge"という文字列オブジェクトの中身を比較することにする。
そのときに、
if (hoge == "hoge") |
と書く奴は論外だ。三流以下だ。それはわかるな?」
「それくらいわかります。文字列オブジェクトはequalsで比較しないと。"=="は参照変数が『同じオブジェクトを参照しているか』を比較するものですから。
例えば、
String str1 = "Hello" String str2 = "Hello" String str3 = new String("Hello") |
で比較したときは、str1とstr2は"=="で比較してもif文でtrueは返るけど、
str1とstr3で比較したら、参照するオブジェクトが違うからfalseになります。
・・・だからこうすればいいでしょ?」
if( hoge.equals("hoge")) |
隣にいた先輩は、ふらりと寄ったパチンコで小金を稼いで帰宅する父親のように、ニヤリと笑った。
「そこまででやっと二流だ」
少し間を置いて、先輩は言った。
「 一流のプログラマは、こうは書かない」
「一流のプログラマなら、迷わずこう書く。
if ("hoge".equals(hoge) |
なぜかわかるか?
変数にはnullが入るかもしれないからだ。
nullが入っていたら、NullPointerExceptionが発生する。だから、絶対にnullにならない方を先に書くんだ」
先輩は、そういうと、飲みかけのコーヒーを口に含み、今日三度目のニヤリとした笑みを浮かべた。
「プログラムってのはな、奥が深いんだよ。書き方一つとっても個性が出る。だから面白いんだ」
この時の先輩の言葉は心地良く胸に響き、頭に残った。
僕はeclipseを立ち上げ、プログラムを書き始める。
いつもより丁寧に慎重に、小説を書くように一文の意味を考えながら、コードを書いた。