String... in der Main-Methode

Erste Frage Aufrufe: 1121     Aktiv: 04.06.2020 um 12:17

0

Hallo, ich lerne momentan Java mit dem Buch "Java Programmieren lernen für Einsteiger".

Jetzt ist mir ein Anwendungsbeispiel untergekommen, welches statt String[] String... verwendet. Kann mir wer erklären wieso und was der Unterschied ist? Danke :)

import.javax.swing.JOptionPane;

public class Fenster { public static void main (String ... args ) { JOptionPane.showMessageDialog (null, "Dieser Dialog erscheint in einem Fenster."); } }

Diese Frage melden
gefragt

Schüler, Punkte: 10

 
Kommentar schreiben
1 Antwort
4

Hallo zahnpastaa,

String... ist ein sogenanntes Varargs (Variable Argumentliste / variable-length arguments). Bei einem Varargs als Methodenparameter können kommagetrennt 0 bis unendlich viele Objekte oder Werte dieses Datentyps (in diesem Fall also vom Datentyp String) übergeben werden.

Eine Beispielmethode wäre

1. public int addiereZahlen(int... zahlenVarargs) { //Magic happens here }

und bedeutet eigentlich genau so viel wie

2. public int addiereZahlen(int[] zahlenArray) { //Magic happens here }

An beide Methoden kannst du ein int[] (int-Array) übergeben.

Unterschied: Im ersten Fall hast du auch die Möglichkeit, die Methode mit einer beliebigen Anzahl kommaseparierter int's aufrufen.

Beispielaufrufe:

public int addiereZahlen();

public int addiereZahlen(6, 3, 9, 2);

public int addiereZahlen(5,7,98,3,2,6,21);

Intern wird das Varargs vom Compiler in ein Array umgewandelt wird.

Um nun noch auf dein Beispiel mit der main-Methode zurückzukommen: Es spielt also keine Rolle, ob jetzt ein String... oder String[] verwendet wird. Innerhalb der Methode ist args in beiden Fällen ein String-Array (String[]).

Grüße Waste

Diese Antwort melden
geantwortet

Student, Punkte: 45

 

Danke Dir.
Kannst Du mir sagen, was ich machen muss, um Deine Beispielmethoden auszuführen?
Arrays als Parameter hatte ich bisher nicht (nur in der Main-Methode, aber da habe ich es einfach nur abgetippt).

  ─   zahnpastaa 04.06.2020 um 12:17

Kommentar schreiben