2010-02-19 1 views
5

Ich muss Array von Objekten in eine Long/Integer konvertieren. Problem ist, dass diese Objekte manchmal BigIntegers, manchmal BigDecimals und manchmal sogar noch etwas anderes sind. Gibt es irgendwelche guten Bibliotheken, um das zu erreichen?Java-Bibliothek zum Konvertieren von Objekt in numerisch (Ganzzahl, Long etc ..)

zum Beispiel ...

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

Antwort

2

Für den Fall BigInteger und BigDecimal Sie können nur, dass werfen (und all numerische Wrapper-Klasse als auch) zu Number und erhalten die longValue() (vorsichtig sein, wenn die überquell Bereich von long 'obwohl).

Wenn sie etwas anderes sind, dann benötigen Sie einige Regeln, wie Sie es trotzdem konvertieren. Was "etwas anderes" hast du im Sinn?

10

Sie können ziemlich weit kommen mit Number:

Long l = ((Number) object).longValue(); 
Integer i = ((Number) object).intValue(); 
0

Die java.lang.Number Klasse und verwandte Klassen der meisten dieses Jobs ganz gut tun. Wenn Sie mehr Unterstützung für die Verarbeitung von Nullen und Primitiven benötigen, ohne Prüfzeichen und Bedingungen zu schreiben, lesen Sie die Apache Commons-Lang-Bibliotheken, insbesondere NumberUtil.class. Dies sind ausgereifte, häufig verwendete und gut dokumentierte Bibliotheken.

Verwandte Themen