¿Cómo convierto de int a Long en Java?

4 minutos de lectura

avatar de usuario
fantasmal

Sigo encontrando tanto aquí como en Google personas que tienen problemas para ir 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úrelo como Largo en primer lugar”, lo que realmente no aborda la pregunta.

Inicialmente intenté transmitir pero obtengo un “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 puedes imaginar, estoy un poco perplejo, estoy atascado usando int ya que algún contenido está entrando como un ArrayList y la entidad para la que estoy almacenando esta información requiere el número de secuencia como Long.

  • for (long i = 0; i < myList.size(); ++i) también funciona

    – Sopa instantánea

    19 de agosto de 2009 a las 21:08

  • @Instantsoup Sí, eso funcionará para el ciclo, pero como especifiqué en la parte inferior de mi pregunta, ArrayList con el que estoy trabajando requiere el int primitivo al especificar qué posición de índice obtener

    – Fantasmal

    19 de agosto de 2009 a las 21:28

  • long longValue = intValue | 0L;

    – Daniel Jipa

    24 de noviembre de 2017 a las 13:15

  • Lo que hice fue: emitir int a long primero, luego asigna long a Long. p.ej int x = 2; Long y = (long)x;

    –Eric

    14 de mayo de 2019 a las 7:31

Tenga en cuenta que hay una diferencia entre un yeso a long y un elenco para Long. Si lanzas a long (un valor primitivo), entonces debería encuadrarse automáticamente en un Long (el tipo de referencia que lo envuelve).

Alternativamente, podrías usar new para crear una instancia de Longinicializándolo con el int valor.

  • Para demostrar lo que dijo Earwicker, podría llamar a Long.valueOf(i), que toma mucho pero ampliará un int y le devolverá un objeto Long.

    – Grundlefleck

    19 de agosto de 2009 a las 21:08

  • Es preferible el autoboxing, porque no necesariamente tiene que crear un nuevo Long objeto cada vez.

    – Michael Myers

    19 de agosto de 2009 a las 21:08

  • (Advertencia: el resto de este comentario son conjeturas y conjeturas) Si los valores dados a Long.valueOf() se encuentran entre 0 y 128, lo cual es muy común, y devuelve una instancia en caché, ¿será preferible al autoboxing? (Puedo hacer una nueva pregunta si crees que vale la pena…)

    – Grundlefleck

    19 de agosto de 2009 a las 21:12

  • Autoboxing hace lo mismo que eso. Por cierto, está entre -127 y 128.

    – Daniel Earwicker

    19 de agosto de 2009 a las 21:14

  • @Grundlefleck: usos del autoboxing Long.valueOf() (si no recuerdo mal), por lo que no habría ninguna diferencia. Mi comentario fue en respuesta a la respuesta, no a su comentario.

    – Michael Myers

    19 de agosto de 2009 a las 21:15

avatar de usuario
sergio

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

  • Tenga cuidado, ya que esto generará una NullPointerException si está recibiendo un objeto Integer que es nulo.

    – will824

    4 oct 2011 a las 21:57

  • correcto, si me equivoqué, pensé que la respuesta es antigua porque no puedo encontrar el método Long.valueOf(int) !!

    – compartir

    1 de junio de 2014 a las 7:21

  • @ will824: una variable ‘int’ primitiva no puede ser nula.

    – Rondó

    27 de noviembre de 2014 a las 0:57

  • @shareef – vea el comentario de serg – pero creo que este método convierte el int en un largo que se autoencajona con un largo … por lo que parece redundante

    – Rondó

    27 de noviembre de 2014 a las 1:01


  • No existe tal método en Java, lo confundiste con Long.valueOf(long)

    – Farid

    12 de febrero de 2020 a las 3:53

Si ya tiene el int escrito como un número entero, puede hacer esto:

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

usar

new Long(your_integer);

o

Long.valueOf(your_integer);

avatar de usuario
Vikki

 1,new Long(intValue);
 2,Long.valueOf(intValue);

avatar de usuario
steven spungin

Qué tal si

int myInt = 88;

// No compilará

Long myLong = myInt;

// Compila y retiene el espíritu no NULL de int. Lo mejor emitir es sin elenco en absoluto. Por supuesto, su caso de uso puede requerir valores NULL largos y posibles. Pero si el int u otros largos son su única entrada, y su método puede modificarse, sugeriría este enfoque.

long myLong = myInt;

// Compila, es la forma más eficiente y deja en claro que el valor fuente es y nunca será NULL.

Long myLong = (long) myInt;

avatar de usuario
clima nublado

En Java puedes hacer:

 int myInt=4;
 Long myLong= new Long(myInt);

en tu caso seria:

content.setSequence(new Long(i));

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad