Many questions about the differences between int
and Integer
in java (one example). Still, I couldn't find any reference why int
is forbidden as a template type argument:
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// ArrayList<Integer> a = new ArrayList<Integer>();
ArrayList<int> a = new ArrayList<int>();
a.add(2);
a.add(4);
System.out.println(a);
}
}
Here is the compilation error I get:
$ javac Main.java
Main.java:6: error: unexpected type
ArrayList<int> a = new ArrayList<int>();
^
required: reference
found: int
Main.java:6: error: unexpected type
ArrayList<int> a = new ArrayList<int>();
^
required: reference
found: int
2 errors
When I use an Integer
instead (commented line) everything is fine