Вы можете использовать enum
в операторе switch, и Java 7 добавит строку AFAIK.Оператор switch происходит из C, где разрешены только int, а реализация других типов более сложна.
Числа с плавающей запятой не являются хорошими кандидатами на переключение, поскольку точное сравнение часто нарушается из-за ошибок округления.Например, 0.11 - 0.1 == 0.01
является ложным.
переключатель на логическом не очень полезен, так как простой if
оператор будет проще
if(a) {
} else {
}
не будет проще с
switch(a) {
case true:
break;
case false:
break;
}
Кстати: я бы использовал switch (long), если бы он был доступен, но его нет.Это редкий случай для меня.