Witam wszystkich
pisze tuta do was bo nie umiem sobie z tym porodzić
import java.util.ArrayList;
import java.util.List;
/*
Usługi sprzątające
*/
public class Solution {
public static void main(String[] args) {
List<Apartment> apartments = new ArrayList<>();
apartments.add(new OneRoomApt());
apartments.add(new TwoRoomApt());
apartments.add(new ThreeRoomApt());
cleanAllApartments(apartments);
}
public static void cleanAllApartments(List<Apartment> apartments) {
// Napisz tutaj swoją implementację Punktów 1-4
for(int i = 0; i < apartments.size(); i ++){
if(apartments instanceof OneRoomApt)
{ OneRoomApt oneRoomApt = (OneRoomApt) apartments;
oneRoomApt.clean1Room();
}
if(apartments instanceof TwoRoomApt)
{
TwoRoomApt twoRoomApt = (TwoRoomApt) apartments;
twoRoomApt.clean2Rooms();
}
if(apartments instanceof ThreeRoomApt)
{
ThreeRoomApt threeRoomApt = (ThreeRoomApt) apartments;
threeRoomApt.clean3Rooms();
}
}
}
static interface Apartment {
}
static class OneRoomApt implements Apartment {
void clean1Room() {
System.out.println("Posprzątano 1 pokój");
}
}
static class TwoRoomApt implements Apartment {
void clean2Rooms() {
System.out.println("Posprzątano 2 pokoje");
}
}
static class ThreeRoomApt implements Apartment {
void clean3Rooms() {
System.out.println("Posprzątano 3 pokoje");
}
}
}
A teraz cos jest zle z instanceof nie wykywa powiazania i metoda nie wywołuje tekstu.
Jeżeli dam sam obiekt bez instanceof wszystko działa prawidłowo .
To wskazówki
-
Dla wszystkich mieszkań z jedną sypialnią (OneRoomApt) na liście metoda cleanAllApartments musi wywoływać metodę clean1Room.
-
Dla wszystkich mieszkań z dwiema sypialniami (TwoRoomApt) na liście metoda cleanAllApartments musi wywoływać metodę clean2Rooms.
-
Dla wszystkich mieszkań z trzema sypialniami (ThreeRoomApt) na liście metoda cleanAllApartments musi wywoływać metodę clean3Rooms.
Probowałem z equals i tez nic, moze dacie jakies wskazówki ewentualnie komentarze do tego