- 1
user.status = (user.status == 0)?1:0
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−115
user.status = (user.status == 0)?1:0
(c) KO
Хотя если оно внезапно булево, то проще всего user.status ^= 1;
А можно еще больше?
Перечисление в жабе - это сахар или всё же есть профиты перед
?
Да какие там профиты могут быть, если на сам енум генерится точно такой же .class файлик, как и на обычный класс? Вот что показал javap на скомпиленный енум: Так что профит только в удобстве, не более того.
А дальше банальный вызов ordinal() на аргументе свича, трансляция индекса через массив, описанный выше и инструкция lookupswitch, как и в обычном свиче по интам.
Несериализуемый енум смотрелся бы странно ;) Какой же изврат надо сделать на енуме, чтобы захотеть запретить его сериализацию?
Истинно так
Ну на первый взгляд сахар. Когда я увидел впервые - так и подумал.
Но разобрался глубже, и оказалась дюже полезная вещь: сахар процентов на 30-40. То есть скорее нет, чем да.
Там полиморфизм короче записывается, удобно реализовывать семейства чистых функций и заменять NPE-опасные сишкоблядские свичи.
Роман прав - читайте Блоха.