|
Тема |
Re: Java 8 [re: rabin] |
|
Автор |
Henry Krinkle (непознат
) |
|
Публикувано | 20.03.14 12:03 |
|
|
В джава генериците са имплементиране by erasure, тоест проверяват се само по време на компилиране, тоест това:
List<String> list = new ArrayList<String>();
след като се компилира в .class файла си става пак:
List list = new ArrayList();
тоест информацията се "изрязва". Направено е така по legacy причини, тоест ако смесиш стар код който не ползва генерици и нов, който ползва това някак трябва да работи. Така са го решили в джава този проблем (поне аз така знам, ако не съм прав който иска да ме коригира).
В С# доколкото знам генерик информацията отива в комилирания файл тоест пази се в bytecode-а, тоест налична е по време на изпълнение.
За това ти казва горе колегата, че в джава генерици няма, понеже има ама не съвсем истински.
|
| |
|
|
|