Javaの匿名クラスを理解しなおし

ThreadにRunnableを渡してあげて定期的に処理をさせる時に次のような書き方をよくします。

改めて考えるとこの記法はどういった動作をしているのか把握していなかったので、調べてみた。

これは「匿名クラス」と呼ぶそうで別のクラスを作る書き方のよう。既に何らかの実装が存在するメソッドを上書きなども出来る。

コンストラクタは引数を取らないものであれば作れる。その時はインスタンスイニシャライザという書き方を使う。

これを実行するとこうなる。(コンストラクタを使わずにも書ける処理ですがコードの形で書けるという実験)

約2000msずれていました。new Runnableを実行した時点でブロック内のコードが実行されたことがわかります。


ここまで調べておいてなんですが、この表記だとRunnable内のコードが長くなりすぎると可読性が一気に落ちます。

Runnableを実装した普通のクラスを作成したほうが処理の塊がハッキリするのですが、これを一々やると面倒になるので迷いどころ。

カテゴリー: Java, プログラミング関連 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です