Wywołanie odpowiedniej metody na podstawie zawartości stringa

0

Taki dziwny przykład: mam dwie metody o nazwach np. wyswietlPierwszyTekst oraz wyswietlDrugiTekst. Dodatkowo mam listę Stringów, zawierającą dwie pozycje, słowa: Pierwszy oraz Drugi. Następnie losuję jeden String i w zależności, który wylosuję, chciałbym wywołać odpowiednią metodę, tzn. jeśli wylosuję "Pierwszy", chciałbym wywołać metodę: wyswietlPierwszyTekst.
Czy jest jakiś sposób, aby wylosowany String wpleść w nazwę wywoływanej metody? Tzn. utworzyć nazwę metody, która ma być wywołana, wykorzystując wylosowany String?

0

Istnieje możliwość przeciążenia metody ale to wtedy kiedy masz np. różne typy parametrów. Wytłumacz po co Ci te dwie metody - czym się one różnią? Być może podchodzisz do problemu ze złej strony.

0

Załóżmy, że każda z tych metod wyświetla inny tekst, w zależności od wylosowanego Stringa. Gdybyśmy mieli tylko te dwie metody i dwa Stringi, to moglibyśmy zastosować ify, ale jeśli metod byłoby sto i tyle samo Stringów, to byłoby zbyt dużo pisania. Chciałbym od razu wywołać metodę, wykorzystując wylosowany String.

0

To jedyne co mi przychodzi na myśl to przekazywanie tego string'a do metody, ewentualnie jakiś enum i wtedy przekazujesz wartość do tej metody która np. w switch-case wyświetla odpowiedni tekst.

Ciężko doradzić Ci cokolwiek bo twoje przykłady są zbyt ogólne.

0

Ewentualnie stworzyć tablicę ze Stringami i po prostu losowanie indeksu tablicy :x

0

Poczytaj o refleksji.

0

Czekaj, zanim zrobisz sobie krzywdę, wyjaśnij dlaczego wymysliłeś, że dla każdego posiadanego stringa masz osobną metodę do wyświetlania, bo brzmi to co najmniej absurdalnie.
Najlepiej pokaż na kodzie jak to wygląda faktycznie, bo tak najłatwiej ogarnąć skąd ta wspaniała idea się narodziła :)

0

Takie rzeczy to tylko w R.

0

Mozesz zrobic mape string->metoda i wtedy na podstawie wylosowanego stringa uruchamiać to co potrzebujesz

1 użytkowników online, w tym zalogowanych: 0, gości: 1