История изменений
Исправление
Legioner,
(текущая версия)
:
чего не бывает, CCE или NPE?
CCE. Я работал со старым кодом, в котором не было генериков. Проблемы, которую эти генерики были призваны решать, там не возникало. Куча ненужных кастов была, раздражала, много мусора там, где компилятор и так видит, куда кастовать. Проблем с тем, что не тот класс в мапу положили - не было.
А вот проблемы с хитрозакрученными генериками были. Как выдаст тебе ошибку, и сиди, думай, то ли ты
на джаве пишешь, то ли на С++.
В Objective C, кстати, тоже нет генериков и можно из Object-а кастовать без приведения в любой класс. Тоже проблем ни у кого не возникает. И на Objective C++, в котором есть шаблоны, никто почему-то не спешит переходить.
btw, я за то, чтобы методы от null делали <nothing>, либо генерировали какой-нибудь ворнинг отлавливаемый внешними тулазами со специально выставленными флагами. Но это все от желания сделать из Java то, чем она не является.
Генерики как раз сделали из Java то, чем она не являлась.
Исходная версия
Legioner,
:
чего не бывает, CCE или NPE?
CCE. Я работал со старым кодом, в котором не было генериков. Проблемы, которую эти генерики были призваны решать, там не возникало. Куча ненужных кастов была, раздражала, много мусора там, где компилятор и так видит, куда кастовать. Проблем с тем, что не тот класс в мапу положили - не было.
А вот проблемы с хитрозакрученными генериками были. Как выдаст тебе ошибку, и сиди, думай, то ли ты на джаве пишешь, то ли на С++.
btw, я за то, чтобы методы от null делали <nothing>, либо генерировали какой-нибудь ворнинг отлавливаемый внешними тулазами со специально выставленными флагами. Но это все от желания сделать из Java то, чем она не является.
Генерики как раз сделали из Java то, чем она не являлась.