Sobes.tech
Junior — Middle

Vysvětlete koncept typu erasure a jeho hlavní účel v programování.

sobes.tech AI

Odpověď od AI

Typové vymazání je mechanismus v jazyce Java, který se používá při práci s generiky. Během kompilace jsou informace o typech parametrů generik odstraněny (vymazány), a ve zkompilovaném byte kódu jsou typy nahrazeny jejich horním omezeným typem (obvykle Object).

Hlavním cílem typového vymazání:

  • Zajistit zpětnou kompatibilitu s kódem napsaným před vznikem generik.
  • Umožnit použití generik bez změn JVM.

Příklad:

List<String> list = new ArrayList<>();
// Během kompilace se to přibližně změní na:
List list = new ArrayList();

Proto například nelze přímo vytvářet pole parametrizovaných typů nebo používat instanceof s parametrizovanými typy.