What is the differences between Int and Integer in Scala?

int, integer, scala, types

Solution

"What are the differences between Integer and Int?"

Integer is just an alias for java.lang.Integer. Int is the Scala integer with the extra capabilities.

Looking in Predef.scala you can see this the alias:

 /** @deprecated use <code>java.lang.Integer</code> instead */
  @deprecated type Integer = java.lang.Integer

However, there is an implicit conversion from Int to java.lang.Integer if you need it, meaning that you can use Int in methods that take an Integer.

As to why it is deprecated, I can only presume it was to avoid any confusion over which kind of integer you were working with.

Problem

I was working with a variable that I had declared as an Integer and discovered that > is not a member of Integer. Here's a simple example: ``` scala> i warning: there were deprecation warnings; re-run with -deprecation for details res28: Integer = 3 scala> i > 3 <console>:6: error: value > is not a member of Integer i > 3 ^ ``` Compare that to an Int: ``` scala> j res30: Int = 3 scala> j > 3 res31: Boolean = false ``` What are the differences between Integer and Int? I see the deprecation warning but it's unclear to me why it was deprecated and, given that it has been, why it doesn't have a > method.

Original source