2013-08-11 7 views
7

「文字列...」とは何ですか?コードで

String... pricingTypes 

は何を意味するのでしょうか?これはどんなタイプの構造ですか?

+0

[Varargs](http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html) –

+0

[arguments tutorial](http://docs.oracle.com)を参照してください。 /javase/tutorial/java/javaOO/arguments.html)を参照してください。 –

答えて

5

それはvarargsと呼ばれています。シグネチャにの最後の引数がある限り、どのタイプでも動作します。

基本的に、任意の数のパラメータが配列に入れられます。これは配列と同じ意味ではありません。

ように見える方法

void foo(int bar, Socket baz...) 

(この例では)ソケットのアレイはバズと呼ばれるがあります。

foo(32, sSock.accept(), new Socket())を呼び出すと、2つのSocketオブジェクトを持つ配列が見つかります。

foo(32, mySocketArray)タイプとして作業がは、配列を取るように構成されていないではないだろうとして、それを呼び出します。しかし、シグネチャが配列のバリエーションである場合は、1つまたは複数の配列を渡して2次元配列を取得できます。たとえば、void bar(int bar, PrintStream[] baz...)はPrintStreamの複数の配列をとり、単一のPrintStream[][]に貼り付けることができます。

奇妙なことに、配列がオブジェクトであるため、Object... fooは任意の数の配列を取ることができます。

関連する問題