Как сравнить Object и Int.
Object может быть (примитивные типы)
1.byte
2.int
3.long
4.double
(чем оно может быть заранее известно)
При сравнении выскакивают исключения(нельзя сравнить Int и Long). Как это можно реализовать без приведений к String.
Ответ
Если я правильно понял ваш вопрос, то как-то так (ideone):
public static int compare(Object lhs, Integer rhs) {
if (lhs instanceof Double) {
return Double.compare((Double) lhs, rhs);
} else if (lhs instanceof Long) {
return Long.compare((Long) lhs, rhs);
} else if (lhs instanceof Integer) {
return Integer.compare((Integer) lhs, rhs);
} else if (lhs instanceof Byte) {
return Integer.compare(((Byte) lhs).intValue(), rhs);
} else {
throw new IllegalArgumentException();
}
}
Комментариев нет:
Отправить комментарий