思いつきエントリ。後で説明とか付け加える予定。付け加えた。 final なフィールドは基本的にコンストラクタ内部で初期化することしか出来ない。 でも、そのフィールドを初期化する方法が複雑な場合、素直に実装するとコンストラクタがどんどんふくれあがってしまう。 なのでメソッドに分割したい・・・というのはまぁ普通によくあることなんだけど、例えそのメソッドがコンストラクタからしか呼び出されていなかったとしても、 // コンパイルエラーになる public final class Hoge { final int hoge; public Hoge(int piyo) { prepareHoge(piyo); } // コンストラクタからしか呼び出されない private void prepareHoge(int piyo) { // 何かとても複雑な処理 // ... hoge = result;