Im Code:Was bedeutet "String ..."?
Was bedeutet
String... pricingTypes
? Welche Art von Konstrukt ist das?
Im Code:Was bedeutet "String ..."?
Was bedeutet
String... pricingTypes
? Welche Art von Konstrukt ist das?
Es ist ein vararg - variables Argument. Sie können einen Wert dieses Typs beliebig oft übergeben, und der Aufrufer ruft ihn als Array ab.
http://docs.oracle.com/javase/7/docs/technotes/guides/language/varargs.html
Es wird varargs genannt. Es funktioniert für jeden Typ, solange es das letzte Argument in der Signatur ist.
Grundsätzlich wird eine beliebige Anzahl von Parametern in ein Array eingegeben. Dies bedeutet nicht, dass es einem Array entspricht.
Ein Verfahren, das wie folgt aussieht:
void foo(int bar, Socket baz...)
wird eine Array von Socket (in diesem Beispiel) haben Baz genannt.
Also, wenn wir foo(32, sSock.accept(), new Socket())
nennen wir ein Array mit zwei Socket-Objekte finden.
es als foo(32, mySocketArray)
Aufruf wird nicht Arbeit als Typ ist nicht konfiguriert, um ein Array zu nehmen. Wenn die Signatur jedoch aus mehreren Arrays besteht, können Sie ein oder mehrere Arrays übergeben und ein zweidimensionales Array erstellen. Zum Beispiel kann void bar(int bar, PrintStream[] baz...)
mehrere Arrays von PrintStream aufnehmen und sie in einem einzigen PrintStream[][]
stecken.
Seltsamerweise, aufgrund der Tatsache, dass Arrays Objekte sind, kann Object... foo
beliebig viele Arrays aufnehmen.
[Varargs] (http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html) –
Überprüfen Sie die [Argumente Lernprogramm] (http://docs.oracle.com /javase/tutorial/java/javaOO/arguments.html) über varargs zu lernen. –