Ответ
Нет, напрямую нельзя. Параметры типов (Generics) в Java работают только с ссылочными типами (объектами). Примитивные типы (int, char, boolean, long и т.д.) не могут быть использованы в качестве аргумента типа.
Почему? Generics реализованы через стирание типов (type erasure), и во время выполнения вся информация о generic-типах стирается до Object. Примитивы не могут быть приведены к Object.
Решение: Используются классы-обертки (Wrapper Classes). Начиная с Java 5, механизм автоупаковки (autoboxing) и распаковки (unboxing) делает работу с ними почти прозрачной.
Пример:
// Допустимо: Использование класса-обертки
List<Integer> integerList = new ArrayList<>();
integerList.add(42); // Автоупаковка: int -> Integer
int value = integerList.get(0); // Распаковка: Integer -> int
// НЕДОПУСТИМО и вызовет ошибку компиляции
// List<int> primitiveList = new ArrayList<>(); // Ошибка!
Важное исключение: Специализированные версии для примитивов существуют в некоторых сторонних библиотеках (например, int[] в коллекциях Eclipse или Trove) и в Java для потоков (IntStream, LongStream).