読者です 読者をやめる 読者になる 読者になる

ボールを蹴りたいシステムエンジニア

ボール蹴りが大好きなシステムエンジニア、ボールを蹴る時間確保の為に時間がある時には勉強する。

javaの匿名クラスについて改めて調べる

匿名クラス = 無名クラス

以下が分かりやすかった

匿名クラスとは : JavaA2Z

たとえば、Arraysクラスのsort()メソッドで「降順ソート」をしたい場合にComparatorインターフェイスの実装クラスを作る必要がある場合など、「他では使わず、その場でしか使わないサブクラスもしくは実装クラス」を作りたい場合がある。
このような、新しくちゃんとした形でクラスを作るのが面倒な場合に、匿名クラスを使用する。匿名クラスはその名の通り「名前がない」クラスであり、新しくファイルを作る必要がないなど、手軽に作れるというメリットがある。

ただし、匿名クラスはちゃんとしたクラスではないため、メソッドを追加できず、また再利用がしにくい。
構文が複雑でかっこいいこと、ソースファイルを新規に作らなくて済むこと、といったメリットがあるが、普通のクラスを作ることのメリットの方が遙かに多く、コピー&ペーストの多用やプログラムが複雑になりやすいといったデメリットも多い。
匿名クラスの使用は控え、よほどの事がない限り普通のクラスを使用した方がいいだろう。

纏めると

  • スーパークラスのサブクラスorインターフェースの実装クラスとなり、新しいメソッドは追加できない
  • ソースファイルを新規に作らなくて済む
  • その場でしか使わない実装クラス等、再利用性する事は無さそうなクラス実装時に使われる事が多い
  • 言い換えると再利用性は無い

あまり使わない方が良さそう。
java8だとラムダ式があるし、そっち使ったほうが良いかも。