Dúvida Switch com String?

e ae Galera,

para fazer um switch, a variavel tem que ser int ou char.

existe algum outro tipo ?

Obrigado

Que eu saiba o switch só aceita variáveis númericas. Com String não funciona.

Outros campos como data eu nunca testei.

Que eu me lembre a expressão de controle aceita valores do tipo int, short, byte, char.

exatamente.

Só pra complicar um pouquinho, aqui vai uma implementação (doentia, por sinal) de switch em strings, feita pelo cara que bolou a CGLIB (code generation library, usada pelo Hibernate, entre outros):

http://sixlegs.com/blog/java/cglib-stringswitch.html

Falando em coisas doentias olhe o gperf da gnu, 1 gerador de hashes perfeitos.
ou seja, dada uma lista de strings ele gera 1 função de lookup que calcula de forma constante qual string se trata.