switch для ссылочных типов

Насколько я знаю switch можно использовать для простых типов byte, short, char, int. Также можно использовать для Enum и String (начиная с JDK7), и для специальных классов, которые являются обёрткой для примитивных типов: Character, Byte, Short, Integer. Пару раз встречал, что, якобы, конструкцию, что-то типа такой:

if (animal instanceof Cat) {
((Cat) animal).voice();
} else  if (animal instanceof Tiger) {
((Tiger) animal).voice();
} else if (animal instanceof Lion) {
((Lion) animal).voice();
}

можно заменить на switch. Я чего-то не понимаю или это новые возможности JDK8+?


Ответы (0 шт):