[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<>();
list.add(10);


Fix:

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<>();
list.add(10);


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

Top Hashtags:

Advertisements

Advertisements




Advertisements