Как говорили некоторые другие, много раз, когда вы используете анонимный внутренний класс, он также используется и в некоторых других местах ...
Таким образом, вы можете легко дублировать код внутреннего класса во многих местах ..Кажется, это не проблема, когда вы используете очень простые внутренние классы для фильтрации / сортировки коллекций, используя предикаты, компаратор или что-нибудь в этом роде ...
Но вы должны знать, что при использовании 3 раза анонимного внутреннего классакоторый делает то же самое (например, удаляя "" из Коллекции), вы фактически создаете 3 новых класса в java PermGen.
Так что если все используют внутренние классы везде, это может привести к приложениюимея больший permgen.В зависимости от приложения это может быть проблемой ... Если вы работаете в отрасли, вы можете программировать встроенные приложения с ограниченной памятью, которые должны быть оптимизированы ...
Обратите внимание, что именно поэтомуСинтаксис двойной фигурной скобки (анонимный внутренний класс с нестатическим блоком инициализации) иногда рассматривается как антипаттерн:
new ArrayList<String>() {{
add("java");
add("jsp");
add("servlets");
}}
Вам следует обратиться к людям, которые запрещают вам использовать их ... ИМХО, все зависит отконтекст ...