История изменений
Исправление
Legioner,
(текущая версия)
:
Не знаю для чего они с шарпе, но в джаве дженерики совершенно для другого. Применения шарповским я в своё время так и не придумал.
Для другого это для чего? new T() даже нельзя написать. Приходится Class<T> прокидывать доп-параметром только из-за того, что генерики убогие.
LINQ
Так и не понял нафига оно надо
Для удобной работы с БД.
Что за null-фобия?
Ну первая версия совсем не содержала null. Потом туда прикрутили nullable дженерики. Мне было очень весело когда с одной стороны у меня были int? а с другой int (они не кастяться ни туда ни обратно). Потом стандартные типы постоянно выкидывают всякие эксепшены при попытке работать с null. Например стандартные мапы выкидывали key not found и key is null (или как то так). Т.е. вместо того что б просто вернуть null из мапы если я передал null в качестве ключа, который получил из какого-нить метода, мне приходилось заворачивать всё в if'ы. Сложилось стойкое впечатление что делали так, чтоб NPE никогда не вылетел, в результате наплодили кучу маразма.
Понятно, спасибо.
С такой логикой можно и на C сидеть 40 лет.
Что характерно, сидят.
Но это уже другая история.
Исправление
Legioner,
:
Не знаю для чего они с шарпе, но в джаве дженерики совершенно для другого. Применения шарповским я в своё время так и не придумал.
Для другого это для чего? new T() даже нельзя написать. Приходится Class<T> прокидывать доп-параметром только из-за того, что генерики убогие.
LINQ
Так и не понял нафига оно надо
Для удобной работы с БД.
Что за null-фобия?
Ну первая версия совсем не содержала null. Потом туда прикрутили nullable дженерики. Мне было очень весело когда с одной стороны у меня были int? а с другой int (они не кастяться ни туда ни обратно). Потом стандартные типы постоянно выкидывают всякие эксепшены при попытке работать с null. Например стандартные мапы выкидывали key not found и key is null (или как то так). Т.е. вместо того что б просто вернуть null из мапы если я передал null в качестве ключа, который получил из какого-нить метода, мне приходилось заворачивать всё в if'ы. Сложилось стойкое впечатление что делали так, чтоб NPE никогда не вылетел, в результате наплодили кучу маразма.
Понятно.
С такой логикой можно и на C сидеть 40 лет.
Что характерно, сидят.
Но это уже другая история.
Исходная версия
Legioner,
:
Не знаю для чего они с шарпе, но в джаве дженерики совершенно для другого. Применения шарповским я в своё время так и не придумал.
Для другого это для чего? new T() даже нельзя написать.
LINQ
Так и не понял нафига оно надо
Для удобной работы с БД.
Что за null-фобия?
Ну первая версия совсем не содержала null. Потом туда прикрутили nullable дженерики. Мне было очень весело когда с одной стороны у меня были int? а с другой int (они не кастяться ни туда ни обратно). Потом стандартные типы постоянно выкидывают всякие эксепшены при попытке работать с null. Например стандартные мапы выкидывали key not found и key is null (или как то так). Т.е. вместо того что б просто вернуть null из мапы если я передал null в качестве ключа, который получил из какого-нить метода, мне приходилось заворачивать всё в if'ы. Сложилось стойкое впечатление что делали так, чтоб NPE никогда не вылетел, в результате наплодили кучу маразма.
Понятно.
С такой логикой можно и на C сидеть 40 лет.
Что характерно, сидят.
Но это уже другая история.