Nie mniej co do "reified generics" to nie słyszalem żeby miało to być w JDK 11 wprowadzone

No koleś zdecydowanie przesadził z optymizmem. Primo do Javy 11 to na 100% nie wejdzie - jest na to jeszcze za wcześnie. Secundo - pełne reification takie jakie znamy z .NETa (i tylko .NETa, bo poza .NETem pełnej refleksji generyków w czasie wykonania nigdzie nie ma) też prawdopodobnie nie będzie obecne. Reification będzie na tyle, by dało się połączyć value classes z generykami i osiągnęło to wysoką wydajność. Umożliwienie głębokiej refleksji na generykach nie jest kwestią wydajności tylko raczej ukłonem w stronę magicznych frameworków opartych o refleksję. Jak widać twórcy Javy poszli po rozum do głowy i takich ukłonów jakoś specjalnie nie chcą robić ;]

Jeśli ktoś widzi podobieństwa między refiied generics w C#, a szablonami w C++ to pragę poinformować, że jest w dużym błędzie. W .NETowym reified generics chodzi o to, by móc w czasie wykonania grzebać sobie w istniejących instancjach obiektów. Szablony w C++ie natomiast przerabiane są na etapie kompilacji, czy na etapie statycznej analizy kodu źródłowego, kiedy jeszcze żadnych instancji obiektów docelowych klas nie ma. Java też udostępnia informacje o generykach, które da się wydobyć na etapie kompilacji, np poprzez java.lang.reflect.Field.getGenericType() (metoda dostępna od Javy 5).