1

オブジェクトでインスタンス化する必要があるクラスがあります。

public class FusePumpComboBox extends Sprite
{
    private var _rowCount;

    public function FusePumpComboBox(args:Object)
    {
        _rowCount = (args.rowCount !== undefined) ? args.rowCount : 5;
    }
}

行数を渡して次のようにインスタンス化したくない場合はどうなりますか?

var obj:FusePumpComboBox = new FusePumpComboBox();

現時点では、予想どおり、引数の数が一致しないというエラーが発生します。私はargs:Objectデフォルト値を与えてみました...これが解決策のあるところだと思います。何を与えるか、または(args:Object = {})がどのように機能しないかがわかりません。

編集:私はゲッターとセッターも持っています...

4

3 に答える 3

1

あなたはこれを試すことができます:

public function FusePumpComboBox(args:Object=null)
{
    _rowCount = (args && args.hasOwnProperty('rowCount')) ? args.rowCount : 5;
                       //      ^----- The correct way of checking the properties
}
于 2012-07-19T11:26:07.890 に答える
0

nullデフォルト値として使用し、メソッド内にあるargsかどうかを確認できます。null

これはJavaScript(設定を使用してオブジェクトを解析する)では一般的ですが、OOPのコンテキストで続行することはお勧めできません。

于 2012-07-19T11:24:43.603 に答える
-1

上記の回答は解決策を明確にします。

ちなみに、コンストラクターに引数を渡すのは悪いパターンです。

代わりに、getterとsetterでプロパティを維持することをお勧めします。

複雑なオブジェクト引数の解析は、クラスの「独自の」機能ではないと私が理解していることから、外部で実行する必要があります。

于 2012-07-19T11:29:11.613 に答える