Given the following code, is 'a' (that is of type char) automatically promoted to int type in switch-case statement?
void testSwitch(byte x) {
switch(x) {
case 'a': // 1
case 256: // 2
default: // 3
case 1: // 4
}
}
I couldn't find whether Java SE7 mentions about that..
Thanks in advance for clarification.
Regards, Daniel
Here's what the language specification mentions about this. See this section on
switch
statements:which means that a narrowing conversion will apply to the
char
value'a'
. Its numeric value of97
is representable as abyte
. The value256
however does not fit so the compiler will throw an error.