Rozwiązanie zależy TH e odpowiedź na pytanie - czy wszystkie parametry będą tego samego typu, a jeśli tak, czy każdy z nich będzie traktowany tak samo?
Jeśli parametry nie są tego samego typu lub co ważniejsze, nie będą traktowane tak samo należy użyć metody przeciążenia:
public class MyClass
{
public void doSomething(int i)
{
...
}
public void doSomething(int i, String s)
{
...
}
public void doSomething(int i, String s, boolean b)
{
...
}
}
Jeśli jednak każdy parametr jest tego samego typu i będą traktowane w ten sam sposób, to możesz użyć zmiennej args wyposażone w Javie:
public MyClass
{
public void doSomething(int... integers)
{
for (int i : integers)
{
...
}
}
}
Oczywiście przy użyciu zmiennej args można uzyskać dostęp do każdego arg przez jego indeksem, ale radziłbym przed tym, jak w większości przypadków wskazuje na problem w twój projekt. Podobnie, jeśli znajdziesz się przy sprawdzaniu typów podczas iteracji argumentów, Twój projekt wymaga recenzji.
Wszystkie parametry nie są tego samego typu i nie znamy liczby parametrów, które będą przekazywane. –
Powinienem być bardziej przejrzysty - czy wszystkie parametry mogą być traktowane jako ten sam super typ, bez potrzeby sprawdzania typu? Kontrola typu nie jest końcem świata, ale w większości przypadków jest to zapach kodu imho. –
Wszystkie parametry nie są tego samego typu i nie znamy liczby parametrów, które będą przekazywane. Przykład: metoda (String a1, String a2, String b1, String b2, .., .. i niektóre wspólne int, Parametry String) gdzie a1 i a2 to jeden zestaw, b1 i b2 inny zestaw i tak dalej. Ale nie wiemy, ile zestawów musi minąć. –