Witam. Czy w javie są tak jak w c++ argumenty domniemane funkcji? Jeżeli są to proszę o jakiś przykład. Jeśli nie ma to w jaki sposób metodę, której używam w kilkuset miejscach, zmodyfikować tak, by dodać jeszcze jeden argument bez potrzeby poprawiania wszystkich wywołań metod? Z góry dziękuję za pomoc i pozdrawiam!
A kurs Javy Suna czytałeś?
public void napiszX(String x)
{
napiszX(x,1);
}
public void napiszX(String x, int ileRazy)
{
for(int i=ileRazy; i>0;i--)
{
System.out.println(x);
}
}
Kursu Suna nie czytałem. Natomiast o przeciążaniu słyszałem i używałem. Chodziło mi raczej o coś w rodzaju:
void napiszX(String tekst, Integer licznik = 5)
{
...
}
Niemniej dziękuję za pomoc i pozdrawiam.
Obawiam się, że taki rzeczy to tylko w C++
A nie wystarczy:
void napiszX(String tekst, Integer licznik)
{
licznik=5;
...
}
Chyba nie, bo w przypadku w jakim podał autor, jeżeli programista wywoła funkcję z argumentem licznik, to będzie wzięta wartość z wywołania, jeżeli tego licznika zabraknie, to będzie wzięta domyślna wartość licznik = 5.
To trzeba zrobić tak jak ja podałem i nie inaczej...
void napiszX(String tekst, Integer... licznik)
I taką deklarację można wywołać bez podania licznika, czyli prawie jak argument domniemany. Tylko w środku trzeba sprawdzić, czy licznik został podany i jeżeli nie został, to przypisać mu wartość domyślną. Tak proste jak w C++ to to nie jest, ale jak chce się zmienić tylko metodę a pozostawić wywołania, to daje radę.
Należy zrobić dokładnie tak, jak podał Keraj.
Stosowanie ... (varargs z C++) w tym przypadku nie ma większego sensu.
Witam. Dokładnie to co napisał użytkownik chodnik miałem na myśli.
Przykładowy program:
void napiszX(String tekst, Integer licznik) {
if (licznik == null) {
licznik = 5;
}
}
Dziękuję za pomoc zwłaszcza użytkownikom Keraj oraz chodnik.
Pozdrawiam!