2013-01-05 10 views
7

私は何百万ものjava.lang.Longをプリミティブint型に変換する必要がある、奇妙なシナリオがあります。私はこれを毎日何度もする必要があります。通常、このようなシンプルなキャスティングについては心配しませんが、それほど頻繁に起こっているので、これを行う最も効率的な方法は何ですか?なぜですか?java.lang.Longをプリミティブ型のintに変換する最も効率的な方法

私の最初の試み:

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

これは納屋の周りに3面を行くように思えるが。前もって感謝します。

+1

WARNINGを試してみてください)すでにことを知っています'long'の' int'は 'int'に収まらないかもしれません。 – MrSmith42

+3

' intValue() 'を使うだけで、あなたのロングが制限されていない限りデータが失われることを認識します。 –

+0

'Long'を' String'に変換せず、 'int'を得るために解析します。 – MrSmith42

答えて

23

を試してみてください - しかし、あなた値:おそらく

9

Longクラスは、私は、これはあなたが警告(...

を探している、あなたはなどなどの精度を失うかもしれないものだと思い、.intValue()方法があり、この

int x = myLong.intValue(); 
+0

エラーが発生しました:プリミティブ型longのintValue()を呼び出せません。 – Anand

+1

@Anand。 'myLong'は' long'ではなく 'Long'として宣言されなければなりません。後者の場合は、キャストするだけです。すなわち '(int)myPrimitiveLong'です。 –

関連する問題