Przeciążanie metod

Przeciążanie metod
K7
  • Rejestracja: dni
  • Ostatnio: dni
  • 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?

szweszwe
  • Rejestracja: dni
  • Ostatnio: 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".

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • 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ć.

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5550
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());

?

BL
  • Rejestracja: dni
  • Ostatnio: dni
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());
}
KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5550
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

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.