Java8でコードを書くことが増えたので、Java7と8の新機能で知っておいた方がよさそうなことを、いまさらながら書き出してみます。
重要度は、自分自身が使う頻度が多かったもので判断しているので、あまりあてにならないかもしれません…
たとえば、Date and Time APIは、日付操作するようなコード書くことになった場合には、使うことになるのではと思っています。(CalendarとDateで頑張るのは苦しいので)
- 高 (コードを書くときに頻繁に使用することになりそう)
- try-with-resources [Java7]
リソースの有効範囲をブロックで指定して、解放漏れを防ぐ。C#でいうusing。 - More New I/O APIs for Java (NIO.2) [Java7]
Path/PathsとFilesは覚えておくべき。ファイル、ディレクトリ操作が改善されている。 - lambda [Java8]
関数をそのままオブジェクトとして渡せるように書ける。無名クラスのインスタンスを作るような書き方をしなくて済む。 - Stream API [Java8]
リストなどに対して、関数型スタイルの操作を行えるように。C#でいうLinqに近い。
- try-with-resources [Java7]
- 中 (知っとくと便利な時も)
- StandardCharsets [Java7]
UTF-8を指定する際に、"UTF-8"と文字列を指定するのではなく、定数のStandardCharsets.UTF_8 が利用できる - Catching Multiple Exception [Java7]
catchで複数の例外を指定してまとめてcatchできる。
- StandardCharsets [Java7]
- 低 (そういったのがあること自体は頭の中に入れておく)
- Optional [Java8]
値がないかもしれないことを表現するクラスとしてOptionalが追加。 - Date and Time API [Java8]
日付、時間のAPIが大幅に改善/変更。 - switchでのString対応 [Java7]
switch文の指揮にStringが使えるようになった。
- Optional [Java8]
- その他 (参考程度)
- ダイアモンド演算子 [Java7]
ジェネリクスを使ったクラスをインスタンス化する際に、型引数を省略可能に
- ダイアモンド演算子 [Java7]