¿Cómo convierto de int a Long en Java?
double to long java (12)
En Java puedes hacer:
int myInt=4;
Long myLong= new Long(myInt);
en tu caso sería:
content.setSequence(new Long(i));
Sigo encontrando tanto aquí como a personas de Google que tienen problemas pasando de long
a int
y no al revés. Sin embargo, estoy seguro de que no soy el único que se ha topado con este escenario antes de pasar de int
a Long
.
Las únicas otras respuestas que encontré fueron "Simplemente configúralo como Long en primer lugar", lo que realmente no soluciona la pregunta.
¿Alguien puede ayudarme aquí? Inicialmente probé el casting pero recibí un " Cannot cast from int to Long
transmitir Cannot cast from int to Long
"
for (int i = 0; i < myArrayList.size(); ++i ) {
content = new Content();
content.setDescription(myArrayList.get(i));
content.setSequence((Long) i);
session.save(content);
}
Como se puede imaginar, estoy un poco perplejo, estoy atascado usando int ya que parte del contenido viene como una ArrayList y la entidad para la que estoy almacenando esta información requiere el número de secuencia como Long.
¡Gracias!
Obtendremos el valor largo utilizando la referencia Number
.
public static long toLong(Number number){
return number.longValue();
}
Funciona para todos los tipos de números, aquí hay una prueba:
public static void testToLong() throws Exception {
assertEquals(0l, toLong(0)); // an int
assertEquals(0l, toLong((short)0)); // a short
assertEquals(0l, toLong(0l)); // a long
assertEquals(0l, toLong((long) 0)); // another long
assertEquals(0l, toLong(0.0f)); // a float
assertEquals(0l, toLong(0.0)); // a double
}
Qué tal si
int myInt = 88;
// No compilaremos
Long myLong = myInt;
// Compila y conserva el espíritu no NULL de int. El mejor elenco no tiene ningún elenco . Por supuesto, su caso de uso puede requerir valores NULL largos y posibles. Pero si la int u otras longs son su única entrada, y su método puede ser modificado, sugeriría este enfoque.
long myLong = myInt;
// Compila, es la forma más eficiente, y deja en claro que el valor de origen es y nunca será NULL.
Long myLong = (long) myInt;
Si ya tiene el int escrito como un entero, puede hacer esto:
Integer y = 1;
long x = y.longValue();
Tan pronto como solo Long.valueOf(long)
método Long.valueOf(long)
, el lanzamiento de int
a long
se realizará implícitamente en caso de utilizar Long.valueOf(intValue)
.
La forma más clara de hacer esto es
Integer.valueOf(intValue).longValue()
Tenga en cuenta que hay una diferencia entre un lanzamiento a long
y un lanzamiento a Long
. Si lanzas a long
(un valor primitivo), entonces se debe encasillar automáticamente en un Long
(el tipo de referencia que lo envuelve).
Alternativamente, puede usar new
para crear una instancia de Long
, inicializándola con el valor int
.
Tengo este pequeño juguete, que también trata con interfaces no genéricas. Estoy de acuerdo con que arroje una ClassCastException si el feed es incorrecto (OK y feliz)
public class TypeUtil {
public static long castToLong(Object o) {
Number n = (Number) o;
return n.longValue();
}
}
Tuve un gran problema con esto. Solo quería:
thisBill.IntervalCount = jPaidCountSpinner.getValue();
Donde IntervalCount es un Largo, y el JSpinner fue configurado para devolver un Largo. Finalmente tuve que escribir esta función:
public static final Long getLong(Object obj) throws IllegalArgumentException {
Long rv;
if((obj.getClass() == Integer.class) || (obj.getClass() == Long.class) || (obj.getClass() == Double.class)) {
rv = Long.parseLong(obj.toString());
}
else if((obj.getClass() == int.class) || (obj.getClass() == long.class) || (obj.getClass() == double.class)) {
rv = (Long) obj;
}
else if(obj.getClass() == String.class) {
rv = Long.parseLong(obj.toString());
}
else {
throw new IllegalArgumentException("getLong: type " + obj.getClass() + " = /"" + obj.toString() + "/" unaccounted for");
}
return rv;
}
que parece hacer el truco. Ninguna cantidad de fundición simple, ninguna de las soluciones anteriores funcionó para mí. Muy frustrante.
Use lo siguiente: Long.valueOf(int);
.
utilizar
new Long(your_integer);
o
Long.valueOf(your_integer);
//Suppose you have int and you wan to convert it to Long
int i=78;
//convert to Long
Long l=Long.valueOf(i)
1,new Long(intValue);
2,Long.valueOf(intValue);