Przeciążanie metod

Przeciążanie metod
K7
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:43
0

Cześć, mam dwie takie same metody, ale jedna przyjmuje w parametrze pojedynczy obiekt a druga liste obiektow,

Kopiuj
public ObjectEntity  getOneObject(ObjectEntity object) {
...
}
Kopiuj
public List<ObjectEntity > getListOfObjects(List<ObjectEntity> object) {
...
}

Jak przeciążyć te metody by logika w nich napisana nie była powielana a działała i dla pojedynczego obiektu i dla listy?

edytowany 1x, ostatnio: kiowa72
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:6 dni
  • Lokalizacja:Kraków
  • Postów:1694
3

O co chodzi? Przeciążyć to możesz jak nazwa będzie taka sama a inne parametry. Tutaj masz różne nazwy, różne parametry, zwracać to nawet nic nie zwracasz nie wiedzieć czemu.
Jeszcze piszesz:

mam dwie takie same metody`.

Z której strony one są takie same?

Jak przeciążyć te metody by logika w nich napisana nie była powielana a działała i dla pojedynczego obiektu i dla listy?

No to pewnie zależy od tego co to za logika. Teraz to można odpowiedzieć tym co jest w pytaniu czyli: zrób tak, żeby "logika w nich napisana nie była powielana a działała".

K7
dalem troche zle przyklady, z palca pisalem
K7
chodzi mi o to, ze w obu metodach logika jest taka sama, tylko ze jedna odpowiada za prace na pojedynczym obiekcie a druga na liscie obiektow
K7
no i sęk w tym, że nie chce powielac bezsensownie tego kodu w dwoch miejscach
K5
Podaj poprawny kod to Ci pomożemy :)
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3
Kopiuj
public List<ObjectEntity> getListOfObjects(List<ObjectEntity> list) {
    return list.stream().map(this::getOneObject).collect(Collectors.toList());
}

Jeśli dobrze rozumiem co chcesz zrobić.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 6x, ostatnio: Shalom
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:29 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0
Shalom napisał(a):
Kopiuj
public List<ObjectEntity> getListOfObjects(List<ObjectEntity> list) {
    return list.map(this::getOneObject).collect(Collectors.toList());
}

Jeśli dobrze rozumiem co chcesz zrobić.

a nie

Kopiuj
     return list.stream().map(this::getOneObject).collect(Collectors.toList());

?


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
Shalom
Oj tam, zjadłem stream bo pisałem z palca :P
jarekr000000
@Shalom ... pewnie na co dzień używasz tego vejvra, myślałeś że jak dodasz collect to się ukryjesz, ale niestety właśnie się zdradziłeś.
Shalom
kotlin też ma map na Sequence bez .stream() ;) zresztą zwykle IDE podpowiada i się człowiek nie zastanawia nawet
BL
  • Rejestracja:ponad 16 lat
  • Ostatnio:5 miesięcy
0

Taki kod wykona dokładnie to czego potrzebujesz:

Kopiuj
public List<ObjectEntity > getListOfObjects(List<ObjectEntity> objects) {
    objects.stream().map(this::getOneObject).collect(Collectios.toList());
}

Zapraszam osoby początkujące na indywidualne szkolenia z programowania w JAVA. Dla najlepszych, po zakończonym kursie, praca ze stawką początkową 10-12tyś netto. Kurs trwa od 6 do 24 miesięcy, 1-2h w tygodniu, 150PLN/h. szkolenia kropka java malpaa gmail kropka com
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:29 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1
Blood napisał(a):

Taki kod wykona dokładnie to czego potrzebujesz:

Kopiuj
public List<ObjectEntity > getListOfObjects(List<ObjectEntity> objects) {
    objects.stream().map(this::getOneObject).collect(Collectios.toList());
}

Proponuję kopiować dokładniej kod z postów wyżej bo return zapomniałeś i Ci się nie skompiluje :P


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 2x, ostatnio: KamilAdam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.