Załóżmy, że mamy interfejs nadrzędny z funkcją compare().Java Polimorfizm: Jak mogę uniknąć wprowadzania parametrów wejściowych?
public interface Parent {
public int compare(Parent otherParent);
}
Załóżmy, że dzieci child1, Child2, Child3 wdrożenia tego interfejsu Parent
public class Child1 implements Parent {
@Override
public int compare(Parent other) {
Child1 otherChild = (Child1)other;
}
}
Również używam rodzajowych <T extends Parent>
wszędzie indziej w kodzie. Muszę więc porównać dwa obiekty typu T z innych części kodu.
Rozumiem, że jest to zły projekt, ponieważ próbuję typować obiekt nadrzędny w funkcji compare() i nie wiem nawet, czy dane wejściowe są typu Child1.
Jak mogę uniknąć tego typu rzucania podczas używania generycznych?
Guess będę musiał użyć typu cast wtedy. Dzięki! –