Twitterでこれ↓が流れてきて、あれーあのクラスは無いんだー、まぁ最低限と言われると違うかもなー。と思うのがあったので便乗。
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
パッケージは便利なクラスが多いので眺めておくと良さそう。