¿Cómo puedo convertir de int a Long en Java?

Sigo encontrando tanto aquí como en Google gente que tiene problemas al pasar de long a int y no al revés. Sin embargo, estoy seguro de que no soy el único que se ha encontrado con este escenario antes de ir de int a Long.

Las únicas respuestas que he encontrado son "Sólo configurarlo como largo en el primer lugar" que realmente doesn't abordar la cuestión.

Inicialmente traté de fundición, pero me sale un "No se puede fundir de int a 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 puedes imaginar estoy un poco perplejo, estoy atascado usando int ya que algunos contenidos vienen como un ArrayList y la entidad para la que estoy almacenando esta información requiere el número de secuencia como un Long.

Solución

Ten en cuenta que hay una diferencia entre un cast a long y un cast a Long. Si se hace un casting a long (un valor primitivo) entonces debería ser automáticamente encajado a un Long (el tipo de referencia que lo envuelve).

También puedes usar new para crear una instancia de Long, inicializándola con el valor int.

Comentarios (8)

Utilice lo siguiente: Long.valueOf(int);.

Comentarios (8)

Si ya tienes el int tipado como un Integer puedes hacer esto:

Integer y = 1;
long x = y.longValue();
Comentarios (0)