私はこれを理解したことがありませんが、なぜ Java ではコンストラクターからチェック例外をスローできるのでしょうか?
public class PerformanceLogger{
public PerformanceLogger() throws Exception{
//do stuff
}
}
このようなコードを持つことの影響は、クラス フィールド レベルでインスタンスをインスタンス化できないことです。
class MyClass {
PerformanceLogger p = new PerformanceLogger(); //compile error
}
機能する唯一のことは、メソッド内からコンストラクターを呼び出すことです。では、なぜわざわざ?Javaがコンパイル時にコンストラクターからのチェック例外のスローを許可しないとしたら、よりクリーンではないでしょうか?