Sobes.tech
Junior — Middle

Mi akadályozza az alapvető adattípusok használatát a generikus paraméterekben?

sobes.tech MI

Válasz az MI-től

Java-ban a generikusokat típuseltávolítással (type erasure) valósítják meg, ami azt jelenti, hogy a generikus paraméterek típusaira vonatkozó információk futásidőben nem érhetők el.

Ezért nem lehet primitív típusokat (int, boolean stb.) használni generikus paraméterként, mivel nem objektumok, és nem ábrázolhatók osztályként.

Például helytelen a következő:

List<int> numbers; // Hiba

Helyette csomagolókat kell használni:

List<Integer> numbers; // Helyes

Ez azért van, mert a generikusok csak objektumtípusokkal működnek, a primitív típusok pedig nem azok.