code: public static String getByteCodeType(Class<?> clazz) {
          Assert.notNull(clazz);
          if (byte.class == clazz) {
              return "B";
          } else if (short.class == clazz) {
              return "S";
          } else if (int.class == clazz) {
              return "I";
          } else if (long.class == clazz) {
              return "J";
          } else if (double.class == clazz) {
              return "D";
          } else if (float.class == clazz) {
              return "F";
          } else if (boolean.class == clazz) {
              return "Z";
          } else if (char.class == clazz) {
              return "C";
          } else if (void.class == clazz) {
              // void只有在返回值中才会有
              return "V";
          } else if (StringUtils.trim(clazz.getName(), "[").startsWith("L")) {
              // 是对象数组（这里的对象指的是非原生类型）
              return clazz.getName().replace(".", "/");
          } else if (!JavaTypeUtil.isGeneralType(clazz)) {
              // 是对象（这里的对象指的是非原生类型）
              return "L" + clazz.getName().replace(".", "/") + ";";
          } else {
              return clazz.getName().replace(".", "/");
          }
      }
docs: 获取Class类型的byte code标识，例如int对应的是I，String对应的是Ljava/lang/String，注意：只要不是原生类型肯定是以'L'开头
  或者N个'['后跟一个'L'，'['标识数组
  @param clazz Class对象
  @return 对应的byte code类型，结尾如果是对象会以';'结尾，如果是放在返回值时需要删除