340 votes

Convertir depuis longtemps en entier

Comment convertir un `` valeur dans un `` valeur en Java ?

554voto

Thilo Points 108673
<pre><code></code><p>ou si vous n’avez pas besoin de s’inquiéter de la valeur null :</p><pre><code></code></pre><p>Et dans les deux situations, vous pourriez rencontrer débordements (car une longue peut stocker un plus grand nombre à un entier).</p></pre>

126voto

Sean Patrick Floyd Points 109428

Voici trois façons de le faire :

Les trois versions génèrent presque identique de byte-code :

56voto

birdy Points 2521
Integer intValue = myLong.intValue();

20voto

Jacob Marble Points 6121

Si vous prenez soin de vérifier pour les dépassements et ont Goyave à portée de main, n'est - Ints.checkedCast():

int theInt = Ints.checkedCast(theLong);

La mise en œuvre est extrêmement simple, et jette IllegalArgumentException sur overflow:

public static int checkedCast(long value) {
  int result = (int) value;
  checkArgument(result == value, "Out of range: %s", value);
  return result;
}

8voto

Jeff Foster Points 22175

Vous aurez besoin de taper le transtyper.

Gardez à l’esprit qu’une longue a une plus grande gamme d’int donc vous pouvez perdre des données.

Si vous parlez des types boxed, puis lisez la documentation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X