Kengo's blog

Technical articles about original projects, JVM, Static Analysis and TypeScript.

Javaで覚えておくと便利かもしれないクラス・インタフェース7つ

Twitterでこれ↓が流れてきて、あれーあのクラスは無いんだー、まぁ最低限と言われると違うかもなー。と思うのがあったので便乗。

nowokay.hatenablog.com

java.util.Objects

recordの導入で不要になってきたメソッドも多いが、引数の検証などでまだ出番がある。防御的な書き方を簡単にしてくれるのでおすすめ。

java.util.Scanner

標準入力を受け取ってゴニョゴニョするツールを書くのに便利。競技プログラミング御用達。

java.util.concurrent.Executors

スケジュール実行とか、スレッドを立ち上げてなんかするとか、そういうときに役立つ。

java.util.concurrent.CompletableFuture

JavaにPromiseって無いんですか、と言われたらCompletableFuture があるよ!と返してます。

java.time.Instant

時刻を表すのに便利。でもInstant.now() は使わずに Clock#instant() を使うんじゃよ。

java.time.Clock

Instant.now()System.currentTimeMillis() などを使いたくなったら、代わりに Clock をコンストラクタインジェクションして使うようにしよう。テストが書きやすくなるので。

java.lang.AutoCloseable

このインタフェースを実装しておくとtry-with-resourcesでお片付けできるようになる。 状態を持つクラスで、かつ依存先を開放するclose()stop() というメソッドがある場合に便利に使える。

まとめ

java.util パッケージは便利なクラスが多いので眺めておくと良さそう。

docs.oracle.com