if (descriptor) { switch (type_code.charAt(0)) { case 'B': return byte.class; case 'C': return char.class; case 'D': return double.class; case 'F': return float.class; case 'I': return int.class; case 'J': return long.class; case 'S': return short.class; case 'V': return void.class; case 'Z': return boolean.class; default: throw new ClassNotFoundException("Invalid class name: " + type_code); case 'L': type_code = type_code.substring(1, type_code.length() - 1);  case '[': } } return Class.forName(type_code.replace('/', '.'));
return getClassForEncoding(type_code, descriptor, null);
  public static Class getClassForEncoding(String type_code, boolean descriptor)    throws ClassNotFoundException  {    if (descriptor)      {        switch (type_code.charAt(0))          {          case 'B':            return byte.class;          case 'C':            return char.class;          case 'D':            return double.class;          case 'F':            return float.class;          case 'I':            return int.class;          case 'J':            return long.class;          case 'S':            return short.class;          case 'V':            return void.class;          case 'Z':            return boolean.class;          default:            throw new ClassNotFoundException("Invalid class name: "                                             + type_code);          case 'L':            type_code = type_code.substring(1, type_code.length() - 1);            // Fallthrough.          case '[':          }      }    return Class.forName(type_code.replace('/', '.'));  }