2013-01-05 23 views
7

Ich habe ein seltsames Szenario, wo ich mehrere Millionen java.lang.Long s in primitive int Typen konvertieren muss. Ich muss das mehrmals am Tag machen, jeden Tag. Normalerweise würde ich mir über diese Art von simplem Casting keine Sorgen machen, aber da es so oft passiert, muss ich fragen: Was ist der effizienteste Weg, dies zu tun, und warum?Der effizienteste Weg, um java.lang.Long in primitive int zu konvertieren

Mein erster Versuch:

Long myLong = getLong(); 
int x = Integer.valueOf(myLong.toString()) 

Obwohl dies scheint wie gehen 3 Seiten rund um die Scheune. Danke im Voraus.

+1

ACHTUNG: Wert von 'Long' passt möglicherweise nicht in ein' int' – MrSmith42

+3

Verwenden Sie einfach 'intValue()', und erkennen Sie, dass Sie Daten verlieren, es sei denn, Ihre Longs sind eingeschränkt. –

+0

Konvertieren Sie 'Long' nicht in' String' und parsen Sie es, um ein 'int' zu erhalten. – MrSmith42

Antwort

23

Die Long Klasse eine .intValue() Methode hat, ich denke, das ist das, was Sie suchen ...

(Warnung, können Sie Präzision etc etc verlieren - aber Sie wahrscheinlich wissen, dass bereits)

9

Versuchen Sie, diese

int x = myLong.intValue(); 
+0

Ich bekomme den Fehler: Kann nicht IntValue() auf dem primitiven Typ lang – Anand

+1

@Anand aufrufen. 'myLong' muss als' Long' und nicht 'Long' deklariert werden. Für letzteres Fall wird es einfach umgewandelt, d. H. '(Int) myPrimitiveLong'. –

-2

Versuchen Sie, diese

Integer i = (int) (long) b; 
Verwandte Themen