Sobes.tech
Junior — Middle

Ci sono restrizioni sull'uso dei tipi di base nei tipi generici?

sobes.tech AI

Risposta dell'AI

В Java обобщения (Generics) работают только с ссылочными типами (reference types), а не с примитивными (int, boolean, double и т.п.). Это связано с тем, что во время компиляции происходит стирание типов (type erasure), и информация о конкретном типе не сохраняется в байт-коде.

Поэтому нельзя напрямую использовать примитивные типы в качестве параметров обобщений. Вместо этого применяются их обёртки (wrapper classes), например:

  • int → Integer
  • boolean → Boolean
  • double → Double

Пример:

List<Integer> numbers = new ArrayList<>();
numbers.add(10);

Если нужно работать с примитивами, можно использовать специализированные коллекции из библиотек (например, Trove, FastUtil) или потоки примитивов (IntStream и т.п.).