kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

インスタンス生成させないためには、privateコンストラクタなのか?

staticメソッドで構成されるユーティリティクラスなどで、

不可視コンストラクタとして

public class ClassA{
  
  private ClassA(){
  }
}

とやるけれど、拡張することもあるかもしれないのであれば

public abstract class ClassA{
  
}

とこっちのがよいと思った。
フレームワークのソース*1見てて思った。)

抽象クラスはインスタンス化できない、インスタンス化するには、継承したクラス(派生クラス)でしかできない。
抽象クラスのstaticな実装メソッド(抽象メソッドではない)なら、クラス.メソッドで実行できるからね。

なるほど!!! と思ったのであった。

*1:org.seasar.framework.util.tiger.CollectionsUtil