NULL?Вот, как мне кажется, вполне изящное решение для Java 1.4:
Timestamp minDate =
(Timestamp) Collections.min(
Arrays.asList(new Object[]{date1, date2, date3}),
new Comparator() {
public int compare(Object o1, Object o2) {
if(o1 == null)
return 1;
else
if(o2 == null)
return -1;
else
return ((Timestamp)o1).compareTo(o2);
}});
Единственное неудобство в том, что
compareTo() не может принимать в качестве параметра NULL вместо объекта, иначе бы можно было убрать второй if.Кстати, это отличный пример замыкания с помощью анонимного класса.
UPD: немного побамил код :)
Timestamp minDate =
(Timestamp) Collections.min(
Arrays.asList(new Object[]{date1, date2, date3}),
new Comparator() {
public int compare(Object o1, Object o2) {
return o1 == null ? 1 : o2 == null ? -1 : ((Timestamp)o1).compareTo(o2);
}});
Красиво :)
ОтветитьУдалитьА понятно ли? :)
ОтветитьУдалить