Kiedy zaczynałem programować w Javie, frustrowało mnie to, że instrukcje switch nie miały ciągów. Następnie, korzystając z Enums, zdałem sobie sprawę z korzyści, jakie z nich czerpiesz, zamiast przekazywać surowe wartości - bezpieczeństwo typu (co ułatwia refaktoryzację) oraz przejrzystość dla innych programistów.
Próbuję wymyślić sytuację, w której w SE7 zdecyduję się teraz użyć przełącznika z ciągami jako wejściami, a nie z Enums. Jeśli są one implementowane poprzez przełączanie całych łańcuchów (np. Zamiast dopasowań częściowych lub wyrażeń regularnych), wydaje się, że nie oferuje mniejszego powodu do zmiany kodu.
A dzięki narzędziom IDE i stosunkowi kodowania do odczytu i zapisu znacznie chętniej wygenerowałbym dodatkowe Enum niż przekazywanie wartości ciągów.
Jakie korzyści przynoszą nam jako programistom? Mniej płyty kotła?
Nie wydaje się, żeby język wołał o tę funkcję. Chociaż może istnieje przypadek użycia, który przeoczam.