9

プライベートコンストラクターのキャプチャイディオムを例で説明し、この種の設計が実際に必要な/不要な場所を指摘できますか?

4

2 に答える 2

12

目的は、建設中の一時的な価値を獲得することです。

例は、Javaパズルのソリューション53に示されています。

public class MyThing extends Thing {
    private final int arg;

    public MyThing() {
        this(SomeOtherClass.func());
    }

    private MyThing(int i) {
        super(i);
        arg = i;
   }
}

この場合、スーパークラスコンストラクターに渡したいパラメーターをキャプチャして保存します。そのために、プライベートヘルパーコンストラクターを作成します。このコンストラクターは、パブリックコンストラクターによって呼び出されます。

于 2012-07-06T10:45:59.103 に答える