Например: < /p>
Код: Выделить всё
int x = getValue(); // Which returns 42
switch (x) {
case byte -> System.out.println("byte");
case int -> System.out.println("int");
}
< /code>
Проверка времени выполнения проверяет, что 42 будет соответствовать байту и совпадает, печать 'byte'. < /p>
Если мы изменим порядок случаев: < /p>
switch (x) {
case int -> System.out.println("int");
case byte -> System.out.println("byte");
}
< /code>
Это приведет к ошибке компилятора, потому что случай Int теперь доминирует в случае байта. Из предыдущих меток переключателя также
Apply.
< /blockquote>
Пока что все имеет смысл.switch (x) {
case Integer -> System.out.println("int");
case byte -> System.out.println("byte");
}
< /code>
Этот код будет компилировать без ошибки, и результат будет «int '. Любое значение, которое будет соответствовать байту, также будет соответствовать коробочному целому числу. Отказ от этого из -за доминирования шаблона.
Просто чтобы быть ясным, все примеры используют ту же строку, int x = getValue (); Подробнее здесь: https://stackoverflow.com/questions/797 ... inate-byte