Czy można zadeklarować metodę, która pozwoli na zmienną liczbę parametrów?
Jaka symbolika użyta w definicji wskazuje, że metoda powinna dopuszczać zmienną liczbę parametrów?
Odpowiedź: varargs
Czy można zadeklarować metodę, która pozwoli na zmienną liczbę parametrów?
Jaka symbolika użyta w definicji wskazuje, że metoda powinna dopuszczać zmienną liczbę parametrów?
Odpowiedź: varargs
Odpowiedzi:
To jest poprawne. Więcej na ten temat można znaleźć w poradniku Oracle dotyczącym varargów .
Oto przykład:
które można nazwać jako
źródło
Object...
.Object... args
będzie działać z prymitywami z powodu autoboxingu .varargs.length
Możliwe jest przekazanie zmiennej liczby argumentów do metody. Istnieją jednak pewne ograniczenia:
Aby zrozumieć te ograniczenia, rozważ metodę w poniższym fragmencie kodu używaną do zwracania największej liczby całkowitej na liście liczb całkowitych:
źródło Oracle Certified Associate Java SE 7 Programmer Study Guide 2012
źródło
Tak, to możliwe:
źródło
W przypadku różnych typów argumentów są 3 kropki :
Więc zadzwoń
ze względów bezpieczeństwa użyj w ten sposób:
if (!(x[0] instanceof String)) { throw new IllegalArgumentException("..."); }
źródło
Tak ... od wersji Java 5: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
źródło
Tak Java dopuszcza
vargs
parametr metody.źródło