public static void metoda(String napis, String... napisy);
Argument o zmiennej liczbie danych musi występować zawsze jako ostatni na liście argumentów metody. Trzy kropki oznaczają, że argument może zostać przekazany jako tablica albo lista wartości oddzielonych przecinkami. Jeżeli wykorzystany wartości oddzielone od siebie przecinkami, to kompilator Javy automatycznie skonwertuje je do postaci tablicy i prześle do metody. Dostęp do poszczególnych argumentów jest możliwy za pomocą na przykład pętli iteracyjnej czy też zwykłego dostępu do elementów tablicy (np. rozmiar takiej tablicy - pole length). Poniżej przykładowa aplikacja zawierająca metodę wykorzystującą zmienną liczbę argumentów.
/** * Zmienna liczba argumentów w metodzie * @author kodatnik.blogspot.com */ public class ZmiennaLiczbaArgumentow { // ostatni argument metody może mieć zmienną liczbę danych public static void wyswietl(String napis, String... napisy) { // wyświetlamy pierwszy argument System.out.println (napis); // wyświetlamy liczbę argumentów przekazanych jako drugi parametr System.out.println ("Liczba zmiennych argumentów: " + napisy.length); // w pętli iteracyjnej wyświetlamy poszczególne elementy for (String lancuch : napisy) { System.out.println (lancuch); } } public static void main (String[] args) { // tworzymy tablicę łańcuchów znaków String[] lancuchy = {"Kasia", "Romek", "Andrzej", "Ola", "Tadeusz"}; // wywołujemy metodę wyświetl z 4 argumentami wyswietl("Koleżanki", "Ania", "Ola", "Iwona"); // wywołujemy metodę wyświetl z 2 argumentami wyswietl("Kolega", "Wiktor"); // wywołujemy metodę wyświetl z 5 argumentami wyswietl("Znajomi", "Ania", "Ola", "Iwona", "Leszek"); // wywołujemy metodę wyświetl z 2 argumentami // drugi argument jest tablicą z łańcuchami tekstowymi wyswietl("Pracownicy", lancuchy); } }Uruchomiona aplikacja:
Koleżanki Liczba zmiennych argumentów: 3 Ania Ola Iwona Kolega Liczba zmiennych argumentów: 1 Wiktor Znajomi Liczba zmiennych argumentów: 4 Ania Ola Iwona Leszek Pracownicy Liczba zmiennych argumentów: 5 Kasia Romek Andrzej Ola TadeuszMusimy pamiętać, że zamiana przez kompilator argumentów na tablicę pozbawia nas możliwości przeciążenia powyższej metody na taką:
public static void wyswietl(String napis, String[] napisy);A co się stanie jeśli zdefiniujemy naszą metodę w ten sposób:
public static void wyswietl(String napis1, String napis2);Która wersja metody zostanie wywołana dla takiego kodu?
wyswietl("Marek", "Wiktor");Metoda wyswietl(String, String) jest bardziej wyspecjalizowana (inaczej mówiąc szczegółowa), więc ona zostanie wywołana domyślnie.
3 Komentarze - Metody o zmiennej liczbie argumentów
Dzięki za ten wpis - rozjaśniło mi to pogląd na to zagadnienie :).
Dziękuje Bardzo :)
trzeba sie dokształcac w dzisiejszych czasach
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)