15:52

Имбирь
а вот "Type Erasure" в Java - это вообще уёбищное говно.

удалять из рантайма информацию о генериках "для совместимости со старыми версиями" - когда сам java-код херово совместим между версиями JRE - это, блядь, ёбаный пиздец и "наследственная болезнь".

имя генерика нельзя использовать.

например так:

public class Cl1{

public void fn(){

E elem = new E();// - НЕ КАТИТ, блядь. потому что в рантайме информации о E уже не будет. это, блядь, ёбаный стыд, блядь.

};

}

хуже того, поскольку type erasure - это удаление генериков из кода при компиляции, то код

List = new List;

вызывает только ВАРНИНГ! блядь, ВАРНИНГ!

это, блин, реально говно, ибо List и List - это реально РАЗНЫЕ типы.

но вот они получаются одинаковыми ради обратной совместимости, которая не очень есть.



в c++ и в c# этой проблемы нет

Комментарии
29.11.2011 в 14:07

Иногда мне кажется, что я - яваблядь.
30.11.2011 в 13:53

Имбирь
Гость, Вы бы подписывались....
15.04.2012 в 15:11

какой-то ебаный стыд в сыром мозжечке, а не пост ) я вот не несу свет во тьму )) ) >> это, блин, реально говно, ибо List и List - это реально РАЗНЫЕ типы. лол, с чего бы это? ))) >> E elem = new E();// - НЕ КАТИТ, блядь. потому что в рантайме информации о E уже не будет. это, блядь, ёбаный стыд, блядь. ты сначала Е определи лол ))) >> в c++ ... этой проблемы нет где ты в плюсах дженерики вообще увидел, школолош? ))
15.04.2012 в 21:59

Имбирь
так вот, товарищ, в плюсах ( и в c#) есть аналогичная по использованию вещь. называется по другому, реализована по=другому, но суть - та же.
называется Template. с точки зрени использования - это тот же generic, только без type erasure.
да и этот type erasure - существует лишь для "обратной совместимости" (которая и так хромает весьма).
E на момент исполнения E elem = new E(); - уже не только определена (в том месте, где мы определяем использование), но и успешно забыта. во время type erasure.
а если ты, уважаемый, не видел в глаза других языков - то о чем тут можно говорить?
15.04.2012 в 23:16

ууу, мне говорят, что я видел, а что - нет, ок ) смысл шаблонов (а не Template, пффф) - не откладывать вычисления на рантайм, в отличии от дженериков. и нефиг мешать компайл-тайм шаблоны с рантайм-дженериками. аналогичны они разве что в обобщении типов и, синтаксически, в угловых скобках. во всём остальном разница огромна
16.04.2012 в 12:26

Имбирь
огромна разница в имплементации. а вот в использовании.. они одинаково используются.
16.04.2012 в 13:23

Имбирь
и ограничение "информация о типе не доступна" в целом, можно обойти и есть для этого инструменты.
но это всё уже - через задницу.

Расширенная форма

Редактировать

Подписаться на новые комментарии