class Main { static String greetingType ( Greeting greeting ) { switch ( greeting ) { case FORMAL: return "formal" ; case INFORMAL: return "informal" ; default : throw new AssertionError (); } } public static void main ( String ... args ) { System . $ javap -c Main.class class Main { static java.lang.String greetingType(Greeting); Code: 0: getstatic #2 // Field Main$1.$SwitchMap$Greeting:[I 3: aload_0 4: invokevirtual #3 // Method Greeting.ordinal:()I 7: iaload 8: lookupswitch { 1: 36 2: 39 default: 42 } 36: ldc #4 // String formal 38: areturn 39: ldc #5 // String informal 41: areturn 42: new #6 // class java/lang/AssertionError 45: dup 46: invokespecial #7 // Method java/lang/AssertionError. switch ( greeting ) { case FORMAL: ... // <-- index 1 case INFORMAL: ...