@@ -2509,26 +2509,25 @@ public FieldVisitor visitField(int modifiers, String name, String descriptor, @M
25092509 if (!type .isInstance (value )) {
25102510 throw new IllegalStateException ("Field " + name + " defines an incompatible default value " + value + " (" + value .getClass ().getName () + ")" );
25112511 } else if (type == Integer .class ) {
2512- char character = descriptor .charAt (0 );
2513- int minimum , maximum ;
2514- if (character == 'Z' ) {
2515- minimum = 0 ;
2516- maximum = 1 ;
2517- } else if (character == 'B' ) {
2518- minimum = Byte .MIN_VALUE ;
2519- maximum = Byte .MAX_VALUE ;
2520- } else if (character == 'S' ) {
2521- minimum = Short .MIN_VALUE ;
2522- maximum = Short .MAX_VALUE ;
2523- } else if (character == 'C' ) {
2524- minimum = Character .MIN_VALUE ;
2525- maximum = Character .MAX_VALUE ;
2526- } else {
2527- minimum = Integer .MIN_VALUE ;
2528- maximum = Integer .MAX_VALUE ;
2512+ boolean outOfRange ;
2513+ switch (descriptor .charAt (0 )) {
2514+ case 'Z' :
2515+ outOfRange = (Integer ) value < 0 || (Integer ) value > 1 ;
2516+ break ;
2517+ case 'B' :
2518+ outOfRange = (Integer ) value < Byte .MIN_VALUE || (Integer ) value > Byte .MAX_VALUE ;
2519+ break ;
2520+ case 'S' :
2521+ outOfRange = (Integer ) value < Short .MIN_VALUE || (Integer ) value > Short .MAX_VALUE ;
2522+ break ;
2523+ case 'C' :
2524+ outOfRange = (Integer ) value < Character .MIN_VALUE || (Integer ) value > Character .MAX_VALUE ;
2525+ break ;
2526+ default :
2527+ outOfRange = false ;
25292528 }
2530- if (( Integer ) value < minimum || ( Integer ) value > maximum ) {
2531- throw new IllegalStateException ("Field " + name + " defines an incompatible default value " + value + " (" + minimum + "-" + maximum + ")" );
2529+ if (outOfRange ) {
2530+ throw new IllegalStateException ("Field " + name + " defines an incompatible default value " + value );
25322531 }
25332532 }
25342533 }
0 commit comments