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
switchstatements:which means that a narrowing conversion will apply to the
charvalue'a'. Its numeric value of97is representable as abyte. The value256however does not fit so the compiler will throw an error.