[Fix] Java: Type argument cannot be of primitive type generics

If you are using a generic class or collection type with generics and you pass in a primitive type - short, int, long, float, double, char, boolean, you will get the below error either at the runtime or compile-time,

Compile Time Error: Type argument cannot be of primitive type

Run Time Error:
java: unexpected type
  required: reference
  found:    int
Code with Compilation Error:
List<int> list = new ArrayList<>();


You need to replace the primitive type with its respective Object type,

int -> Integer
byte -> Byte
short -> Short
long -> Long
float -> Float
double -> Double
char -> Character

Fixed Code:
List<Integer> list = new ArrayList<>();

If you are using an IDE like Eclipse or IntelliJ, you should get a hint on how to replace it,

Type argument cannot be of primitive type
Try Out Code2care Dev Tools:


Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and software developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include learnings, tutorials, trouble-shooting steps, video tutorials, code snippets, how-to, blogs, articles, etc.

🎉 We are celebrating the 10th years of Code2care! Thank you for all your support!

We strongly support Gender Equality & Diversity.