0

以下に示すクラスとそれぞれのコンストラクターに遭遇しました。

public class Something{
    public static final int aConstant = 0;
    public static final int bConstant = 1;

    private final AnotherThing[] otherObjects
    private final float usefulNumber;

    public Something(float usefulNumber, AnotherThing ... otherObjects){
        this.usefulNumber = usefulNumber;
        this.otherObjects = otherObjects;
    }

    //various methods
}

これをEclipseに入れると、エラーは表示されません。「...」はある種の演算子だと思いますが、よくわかりません。これが何かなのか、それとも時間が節約されたことを示すためのものなのか、誰かが明確にすることはできますか? (クラスには 2 つの属性しかないため、時間を節約しても意味がありません)

4

2 に答える 2

4

これらは可変引数と呼ばれます。

コードからわかるように、それらは配列として到着します。

にはさまざまな数の引数を渡すことができますotherObjects

于 2013-08-11T23:59:36.260 に答える
3

これは、メソッドまたはコンストラクターが可変数のパラメーターを受け取ることができることを Java に伝える表記法です。最後のパラメータ タイプの後にのみ使用できます。

の前のパラメーター...は必須です。呼び出し元は、それぞれに式を指定する必要があります。ただし、残りのパラメーターはオプションです。呼び出し元は、0、1、2、3、または必要な数を指定できます。これらのパラメーターは、単一の配列としてメソッドまたはコンストラクターに渡されます。

AnotherThingあなたの例では、呼び出し元が望むだけのインスタンスで呼び出しを行うことができます。これは、配列を明示的に渡すための構文上の省略形です。

public Something(float usefulNumber, AnotherThing[] otherObjects) ...
于 2013-08-12T00:00:49.780 に答える