2013-08-11 16 views
7

:'String ...' ne anlama geliyor? kodunda

String... pricingTypes 

ne anlama geliyor? Bu ne biçim bir yapıdır?

+0

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

+0

[argümanlar öğretici] (http://docs.oracle.com Kontrol /javase/tutorial/java/javaOO/arguments.html) varargs hakkında bilgi edinin. –

cevap

5

O varargs denir. İmzadaki son argümanı olduğu sürece herhangi bir tür için çalışır.

Temel olarak, herhangi bir sayıda parametre bir diziye konur. Bu, bir diziye eşdeğer olduğu anlamına gelmez. benzeyen

bir yöntem:

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

(bu örnekte) Soket bir dizi olacaktır Baz olarak adlandırılan.

Yani, foo(32, sSock.accept(), new Socket())'u ararsak, iki Soket nesnesine sahip bir dizi bulabiliriz.

foo(32, mySocketArray) olarak çağrılması olacak türü olarak değil eser bir dizi çekmek için yapılandırılmış değil olduğunu. Ancak, imzanın dizilerden biri olması durumunda, bir veya daha fazla dizi geçirebilir ve iki boyutlu bir dizi elde edebilirsiniz. Örneğin, void bar(int bar, PrintStream[] baz...), birden fazla PrintStream dizisini alabilir ve bunları tek bir PrintStream[][]'a yapıştırabilir.

Kaçınılmaz olarak, diziler nesneler olduğu için, Object... foo herhangi bir dizi diziyi alabilir.