long java casting int long-integer

¿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.



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);