コンストラクタ周りの覚え書き
じぶんめも。
列挙型のコンストラクタ
デフォルトコンストラクタ
インスタンス初期化子
- インスタンスフィールドの初期化式は、インスタンス初期化子内で実行されるものと思うのがよさそう
- インスタンス初期化子の内容は、それぞれのコンストラクタ内に織り込まれると思うのがよさそう
- インスタンス初期化子でチェック例外がスローされる可能性がある場合、すべてのコンストラクタのthrows節にその例外を書けばコンパイルエラーにならない。下のような感じ。
public class InstanceInit { { raise(); } static int raise() throws IOException { throw new IOException(); } InstanceInit() throws IOException {} }
try { new Object() { { raise(); } void raise() throws IOException { throw new IOException(); } }; } catch (IOException e) { e.printStackTrace(); }