Java-библиотека для преобразования объектов в числовые (целые, длинные и т. Д.) - PullRequest
5 голосов
/ 19 февраля 2010

Мне нужно преобразовать массив Объектов в Long / Integer. Проблема в том, что эти Объекты иногда являются BigIntegers, иногда BigDecimals, а иногда даже чем-то еще. Есть ли хорошие библиотеки для этого?

например ...

for (Object[] o : result) {
    Long l = SomeClass.convertToLong(o[0]);
    Integer i = SomeClass.convertToInt(o[1]);
}

Ответы [ 3 ]

12 голосов
/ 19 февраля 2010

Вы можете получить довольно далеко с Число :

Long l = ((Number) object).longValue();
Integer i = ((Number) object).intValue();
3 голосов
/ 19 февраля 2010

В случае BigInteger и BigDecimal вы можете просто привести его (и все классы числовых примитивных оболочек) к Number и получить longValue() (будьте осторожны при переполнении диапазон long 'хотя).

Если это что-то другое, тогда вам понадобятся некоторые правила, как конвертировать его. Что "что-то еще" ты имеешь в виду?

0 голосов
/ 19 февраля 2010

Класс java.lang.Number и связанные классы выполняют большую часть этой работы просто отлично. Если вам нужна дополнительная поддержка для обработки нулей и примитивов без написания проверок и условных выражений, обратитесь к библиотекам Apache Commons-Lang, в частности NumberUtil.class. Это зрелые, широко используемые и хорошо документированные библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...