Contamos con tu apoyo para compartir nuestros tutoriales sobre las ciencias informáticas.
Solución:
“¿Cuáles son las diferencias entre Integer e Int?”
Integer es solo un alias para java.lang.Integer. Int es el entero de Scala con capacidades adicionales.
Mirando en Predef.scala puedes ver este alias:
/** @deprecated use java.lang.Integer
instead */
@deprecated type Integer = java.lang.Integer
Sin embargo, hay una conversión implícita de Int a java.lang.Integer si la necesita, lo que significa que puede usar Int en métodos que toman un Integer.
En cuanto a por qué está en desuso, solo puedo suponer que fue para evitar cualquier confusión sobre con qué tipo de entero estaba trabajando.
Integer se importa de java.lang.Integer y es solo por compatibilidad con Java. Dado que es una clase de Java, por supuesto, no puede tener un método llamado “<". EDITAR: Puede mitigar este problema declarando una conversión implícita de Integer a Int.
implicit def toInt(in:Integer) = in.intValue()
Sin embargo, seguirá recibiendo una advertencia de desaprobación.
Creo que el problema que está viendo tiene que ver con el boxing / unboxing de tipos de valor y el uso de la clase Integer de Java.
Creo que la respuesta está aquí: boxeo y unboxing en Scala. No hay unboxing implícito en Scala. Tu has definido I como la clase de Java Integer pero en el i> 3, el 3 está siendo tratado y un int.
Sección de Reseñas y Valoraciones
Si piensas que te ha resultado de utilidad nuestro post, sería de mucha ayuda si lo compartieras con el resto desarrolladores y nos ayudes a extender nuestro contenido.