Schöne Möglichkeit zum Erzwingen des Parameters user varargs in Java [duplizieren]

8

Ich möchte den Benutzer zwingen, beim Aufruf meines Konstruktors einen optionalen Parameter einzugeben:

%Vor%

Derzeit ist der folgende Code gültig:

%Vor%

Ich möchte es verhindern. Ich dachte daran:

%Vor%

String[] params ist keine Option, weil ich Komma-getrennte Argumente verwenden muss.

Gibt es irgendwelche schönen Lösungen, um dies zu erreichen? Bitte sagen Sie nicht, dass Varargs Parameter optional sein müssen. Die Frage ist nicht darüber.

    
psmears 13.07.2015, 11:25
quelle

4 Antworten

10

Vielleicht der folgende, ein zusätzlicher Standardkonstruktor?

%Vor%     
Joop Eggen 13.07.2015, 11:36
quelle
6

Nein, es gibt keine andere Möglichkeit, dies zur Kompilierzeit durchzuführen. Was Sie gefunden haben, ist das übliche Muster, das den Clientcode zwingt, mindestens einen Parameter zu übergeben.

Sie können es so lesen:

%Vor%

und

%Vor%     
Petr Janeček 13.07.2015 11:31
quelle
1

Wenn Sie es zur Kompilierzeit machen wollen, müssen Sie es so machen, wie Sie es in Ihrem letzten Codebeispiel vorgeschlagen haben.

Dann können Sie ApacheCommons verwenden - ArrayUtils Klasse:

%Vor%     
Denis Lukenich 13.07.2015 11:39
quelle
1

Wirf eine IllegalArgumentException, wenn der Aufrufer kein nicht leeres Parameter-Array bereitgestellt hat.

EDIT: Paraphrasiert den ursprünglichen Text als Antwort

    
wero 13.07.2015 11:31
quelle

Tags und Links