Przeciążanie metod

0

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

public ObjectEntity  getOneObject(ObjectEntity object) {
...
}
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?

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".

3
public List<ObjectEntity> getListOfObjects(List<ObjectEntity> list) {
    return list.stream().map(this::getOneObject).collect(Collectors.toList());
}

Jeśli dobrze rozumiem co chcesz zrobić.

0
Shalom napisał(a):
public List<ObjectEntity> getListOfObjects(List<ObjectEntity> list) {
    return list.map(this::getOneObject).collect(Collectors.toList());
}

Jeśli dobrze rozumiem co chcesz zrobić.

a nie

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

?

0

Taki kod wykona dokładnie to czego potrzebujesz:

public List<ObjectEntity > getListOfObjects(List<ObjectEntity> objects) {
    objects.stream().map(this::getOneObject).collect(Collectios.toList());
}
1
Blood napisał(a):

Taki kod wykona dokładnie to czego potrzebujesz:

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

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