143 votes

Conversion d'un entier en un long

J'ai besoin d'obtenir la valeur d'un champ en utilisant la réflexion. Il se trouve que je ne suis pas toujours sûr du type de données du champ. Pour cette raison, et pour éviter la duplication du code, j'ai créé la méthode suivante :

@SuppressWarnings("unchecked")
private static <T> T getValueByReflection(VarInfo var, Class<?> classUnderTest, Object runtimeInstance) throws Throwable {
  Field f = classUnderTest.getDeclaredField(processFieldName(var));
  f.setAccessible(true);
  T value = (T) f.get(runtimeInstance);

  return value;
}

Et utiliser cette méthode comme :

Long value1 = getValueByReflection(inv.var1(), classUnderTest, runtimeInstance);

ou

Double[] value2 = getValueByReflection(inv.var2(), classUnderTest, runtimeInstance);

Le problème, c'est que je n'arrive pas à lancer Integer à Long :

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

Existe-t-il un meilleur moyen d'y parvenir ?

J'utilise Java 1.6.

10voto

Naresh Kumar Points 344

Convertir un nombre entier en nombre long Très simple et de nombreuses façons de convertir cela
Exemple 1

 new Long(your_integer);

Exemple 2

Long.valueOf(your_integer); 

Exemple 3

Long a = 12345L;

Exemple 4
Si le type de l'int est déjà un Integer, vous pouvez le faire :

Integer y = 12;
long x = y.longValue();

6voto

Jeff Johny Points 41

Convertit un entier directement en long en ajoutant 'L' à la fin de Integer.

Long i = 1234L;

5voto

cingulata Points 386
((Number) intOrLongOrSomewhat).longValue()

2voto

Steven Spungin Points 5660

Si vous savez que l'entier n'est pas NULL, vous pouvez simplement faire ceci :

Integer intVal = 1;
Long longVal = (long) (int) intVal

2voto

Pavlo Zvarych Points 575
new Long(Integer.longValue());

ou

new Long(Integer.toString());

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