Nikita> Ваш смайлик очень символичен. Generic'и Java - убогий костыль сделанный через type erasure. Всё на что они годятся - прикручивать типизацию к примитивным контейнерам. Больше ничего полезного на них сделать нельзя. Большой вопрос, надо ли на генериках делать что-нибудь еще.
Nikita> Анонимные классы механизм также убогий чуть более чем полностью, как по громоздкости\объёму кода, так и по части отсутствия реализации замыканий. По коду - да, тут не поспоришь. И исходники выглядят не очень и каждый анонимный класс - как минимум 1.5 кб бинарников. Но лучше, чем ничего. Может, и убогий по сравнению с C#, но тем не менее вполне рабочий. В общем, чего там, да, С# как язык лучше. С другой стороны, практика - критерий истины. Полезность/вредность того или другого языкового средства можно оценить исключительно по тому, как быстро можно реализовать ту или другую функциональность (в смысле - получить готовый продукт, удовлетворяющий спецификациям и содержащим багов не больше, чем согласен терпеть клиент).