Presta atención porque en este enunciado vas a encontrar el resultado que buscas.Esta sección ha sido aprobado por nuestros expertos para garantizar la calidad y exactitud de nuestro post.
Solución:
Bueno, la API para Integer.valueOf(String)
de hecho dice que el String
se interpreta exactamente como si se le hubiera dado a Integer.parseInt(String)
. Sin embargo, valueOf(String)
devuelve un new
Integer()
objeto mientras que parseInt(String)
devuelve una primitiva int
.
Si desea disfrutar de los posibles beneficios del almacenamiento en caché de Integer.valueOf(int)
también podrías usar esta monstruosidad:
Integer k = Integer.valueOf(Integer.parseInt("123"))
Ahora, si lo que quieres es el objeto y no el primitivo, entonces usando valueOf(String)
puede ser más atractivo que hacer un nuevo objeto a partir de parseInt(String)
porque el primero está consistentemente presente a través Integer
, Long
, Double
etc.
De este foro:
parseInt()
devuelve el tipo entero primitivo (En t), por lo quevalueOf
devoluciones
java.lang.Integer, que es el objeto representativo del entero. Hay circunstancias en las que es posible que desee un objeto Integer, en lugar de un tipo primitivo.Por supuesto, otra diferencia obvia es que Valor int es un método de instancia por el cual parseInt es un static método.
Integer.valueOf(s)
es parecido a
new Integer(Integer.parseInt(s))
La diferencia es valueOf()
devuelve un Integer
y parseInt()
devuelve un int
(un tipo primitivo). También tenga en cuenta que valueOf()
puede devolver un caché Integer
instancia, lo que puede causar resultados confusos donde el resultado de ==
las pruebas parecen intermitentemente correctas. Antes del autoboxing, podría haber una diferencia en la conveniencia, después de Java 1.5, realmente no importa.
Además, Integer.parseInt(s)
también puede tomar tipos de datos primitivos.
Ten en cuenta dar difusión a este ensayo si te fue útil.