Z javadoc z Calendar.before(Object when)
:Calendar.before (Object when), why Object?
Powoduje, czy ten kalendarz reprezentuje czas przed czasem reprezentowanym przez określony obiekt. Ta metoda jest równoważna z:
compareTo(when) < 0
wtedy i tylko wtedy, gdy jest to instancja kalendarza. W przeciwnym razie metoda zwraca wartość false.
Dlaczego akceptuje obiekt, jeśli ktoś przekazuje coś, co nie jest instancją kalendarza, zwraca wartość false? Dlaczego po prostu nie akceptujesz instancji kalendarza? Pozwoliło mi to od dłuższego czasu obserwować niepoprawne wyniki w funkcjonalności.
+1. Zauważ, że obiekt Date (którego projekt miał sprawiać, że Kalendarz miał adresować) ma wcześniejszą metodę, która nie bierze Obiektu (ale inną Datę). Niezbyt konsekwentny interfejs API. – Thilo
Przez "żyć z" masz na myśli dump na rzecz Joda Time? – ILMTitan