code: public static void pushClassType(CodeAttribute b, String classType) {
          if (classType.length() != 1) {
              if (classType.startsWith("L") && classType.endsWith(";")) {
                  classType = classType.substring(1, classType.length() - 1);
              }
              b.loadClass(classType);
          } else {
              char type = classType.charAt(0);
              switch (type) {
                  case 'I':
                      b.getstatic(Integer.class.getName(), TYPE, LJAVA_LANG_CLASS);
                      break;
                  case 'J':
                      b.getstatic(Long.class.getName(), TYPE, LJAVA_LANG_CLASS);
                      break;
                  case 'S':
                      b.getstatic(Short.class.getName(), TYPE, LJAVA_LANG_CLASS);
                      break;
                  case 'F':
                      b.getstatic(Float.class.getName(), TYPE, LJAVA_LANG_CLASS);
                      break;
                  case 'D':
                      b.getstatic(Double.class.getName(), TYPE, LJAVA_LANG_CLASS);
                      break;
                  case 'B':
                      b.getstatic(Byte.class.getName(), TYPE, LJAVA_LANG_CLASS);
                      break;
                  case 'C':
                      b.getstatic(Character.class.getName(), TYPE, LJAVA_LANG_CLASS);
                      break;
                  case 'Z':
                      b.getstatic(Boolean.class.getName(), TYPE, LJAVA_LANG_CLASS);
                      break;
                  default:
                      throw new RuntimeException("Cannot handle primitive type: " + type);
              }
          }
      }
docs: Pushes a class type onto the stack from the string representation This can
  also handle primitives
  
  @param b         the bytecode
  @param classType the type descriptor for the class or primitive to push.
  This will accept both the java.lang.Object form and the
  Ljava/lang/Object; form