最近Java書いててハマったこととかとかとか

5ヶ月ぶりの登場です。
メリ−クリスマス通り越してあけましておめでとう通り越して新成人の皆さんおめでとうございますになってしもうた・・・

成人式からかれこれ7,8年経ってしまったわけで、彼らからしてみれば、僕は立派な大人ですね。
これは僕のモットーですが「あんな大人にはなりたくないなぁ」と思われないような行動をとるように心がけてます。

すいません。前置き長くなりましたが・・・

タイトルの通り、最近Javaいじってて、ハマったことが幾つか。超初歩的なので、ベテランさんは無視してください。

1.文字列の比較
例えば、文字列同士を比較したい時は、必ずequals関数を利用すること。
そうじゃなければ、そもそも処理してくれないので注意。数値比較とは違うのだよ・・・
以下が誤りの例。こうしてしまうと、if文以下がちゃんと判定されない、というか動かない。

//誤りだからやらないで!
String str1 = "aaaa";
String str2 = "bbbb";
if(str1 == str2){
・・・
}

こっちが正しい。ちゃんとequals関数で比較する!

//文字列比較はequalsで!
String str1 = "aaaa";
String str2 = "bbbb";
if(str1.equals(str1) == str2.equals(str2)){
・・・
}

2.ファイルの上書きコピーと追記(Java7以降対応)
これは至ってシンプル。write関数の引数で、指定するオプションを以下のようにする

//僕の場合は、リストの中身をテキストファイルに
//書き込みたかったので、以下の様にしています
//StandardOpenOptionをWRITEにすると、上書きコピーできる
List<String> list - new Arraylist()<String>();
Path path = new File("hoge").toPath();
Files.write(path, list, StandardOpenOption.WRITE);

ちなみに、追記書き込みはStandardOpenOption.APPENDとする。

以下にJava7向けFile操作について色々出ているので、参考まで
Javaファイル関連メモ2(Hishidama's Java Files Memo)

さて、また家帰ったらこれまでの近況書こうかな〜