Pull to refresh

Comments 7

Есть отлично правило хорошего кода: «Используйте только статические внутренние классы».
И есть еще лучше: «Старайтесь не использовать внутренние классы вообще».

Ситуации, когда действительно нужен не статический внутренний класс, крайне редкие. Если вам встретился такой, то скорее всего вы наткнулись на ошибку или на плохой код, который нужно переписать.
Здрасти. Анонимный класс — пример использования не статического внуттренего класса, который был очень оппулярен до появления лямбд. Например всякие хендлеры для GUI, тот же new Thread(new Runnable() {...} ); и т.д.
Доброго дня. Анонимные и Внутренние классы – это разные вещи.
Для анонимных классов есть правило: «У анонимного класса не должно быть состояния».

Если нужно состояние – сделайте это обычным классом; а если при этом нужно связать с текущим – передайте ссылку на текущий, методы для взаимодействия сделайте package-private.

пояснение: Если у класса есть состояние, значит у него довольно сложная логика и этот класс должен быть протестирован через те же unit-тесты. Его поддержка внутри другого класса будет не тривиальной, потому следует разделить эти 2 сущности.
UFO just landed and posted this here
Много всякого java-кода видел, а такого ещё нет. Это нужно специально наступить на такие грабли…
Как все мы знаем 50% переменных, которые более не будут использоваться переименовываются и получают приставку “old”.

А я, дурак, думал, что их принято аннотировать @deprecated

Sign up to leave a comment.

Articles