czy kasowanie typu Java usuwa mój rodzaj ogólny?
Myślałem, że java wymazuje wymazywanie typów generycznych w czasie kompilacji, ale kiedy przetestuję to sam, zdałem sobie sprawę, że w Bytecode są pewne informacje o rodzajach ogólnych.
oto mój test:
Napisałem 2 klasy:
import java.util.*;
public class Test {
List integerList;
}
i
import java.util.*;
public class Test {
List<Integer> integerList;
}
skompilowałem obie klasy i gdzieś w klasie generycznej widziałem tę linię
integerList{blah blah}Ljava/util/List;{blah blah}
Signature{blah blah}%Ljava/util/List<Ljava/lang/Integer;>;{blah blah}<init>
w klasie nie generycznej:
integerList{blah blah}Ljava/util/List;{blah blah}<init>
więc oczywiście mam ogólne informacje wewnątrz kodu bajtowego, więc co to za kasowanie?