public static String arglistFromJvm(String arglist) {
    if (!(arglist.startsWith("(") && arglist.endsWith(")"))) {
      throw new Error("Malformed arglist: " + arglist);
    }
    String result = "(";
    @Positive int pos = 1;
    while (pos < arglist.length() - 1) {
      if (pos > 1) {
        result += ", ";
      }
      int nonarrayPos = pos;
      while (arglist.charAt(nonarrayPos) == '[') {
        nonarrayPos++;
        if (nonarrayPos >= arglist.length()) {
          throw new Error("Malformed arglist: " + arglist);
        }
      }
      char c = arglist.charAt(nonarrayPos);
      if (c == 'L') {
        int semicolonPos = arglist.indexOf(';', nonarrayPos);
        if (semicolonPos == -1) {
          throw new Error("Malformed arglist: " + arglist);
        }
        String fieldDescriptor = arglist.substring(pos, semicolonPos + 1);
        result += fieldDescriptorToBinaryName(fieldDescriptor);
        pos = semicolonPos + 1;
      } else {
        String maybe = fieldDescriptorToBinaryName(arglist.substring(pos, nonarrayPos + 1));
        if (maybe == null) {
          // return null;
          throw new Error("Malformed arglist: " + arglist);
        }
        result += maybe;
        pos = nonarrayPos + 1;
      }
    }
    return result + ")";
  }
public static String arglistFromJvm(String arglist) {
    if (!(arglist.startsWith("(") && arglist.endsWith(")"))) {
      throw new Error("Malformed arglist: " + arglist);
    }
    String result = "(";
    @Positive int pos = 1;
    while (pos < arglist.length() - 1) {
      if (pos > 1) {
        result += ", ";
      }
      int nonarrayPos = pos;
      while (arglist.charAt(nonarrayPos) == '[') {
        nonarrayPos++;
        if (nonarrayPos >= arglist.length()) {
          throw new Error("Malformed arglist: " + arglist);
        }
      }
      char c = arglist.charAt(nonarrayPos);
      if (c == 'L') {
        int semicolonPos = arglist.indexOf(';', nonarrayPos);
        if (semicolonPos == -1) {
          throw new Error("Malformed arglist: " + arglist);
        }
        String fieldDescriptor = arglist.substring(pos, semicolonPos + 1);
        result += fieldDescriptorToBinaryName(fieldDescriptor);
        pos = semicolonPos + 1;
      } else {
        String maybe = fieldDescriptorToBinaryName(arglist.substring(pos, nonarrayPos + 1));
        if (maybe == null) {
          
          throw new Error("Malformed arglist: " + arglist);
        }
        result += maybe;
        pos = nonarrayPos + 1;
      }
    }
    return result + ")";
  }
public static String arglistFromJvm ( String arglist ) { if ( ! ( arglist . startsWith ( "(" ) && arglist . endsWith ( ")" ) ) ) { throw new Error ( "Malformed arglist: " + arglist ) ; } String result = "(" ; @ Positive int pos = 1 ; while ( pos < arglist . length ( ) - 1 ) { if ( pos > 1 ) { result += ", " ; } int nonarrayPos = pos ; while ( arglist . charAt ( nonarrayPos ) == ' ' ) { nonarrayPos ++ ; if ( nonarrayPos >= arglist . length ( ) ) { throw new Error ( "Malformed arglist: " + arglist ) ; } } char c = arglist . charAt ( nonarrayPos ) ; if ( c == ' ' ) { int semicolonPos = arglist . indexOf ( ' ' , nonarrayPos ) ; if ( semicolonPos == - 1 ) { throw new Error ( "Malformed arglist: " + arglist ) ; } String fieldDescriptor = arglist . substring ( pos , semicolonPos + 1 ) ; result += fieldDescriptorToBinaryName ( fieldDescriptor ) ; pos = semicolonPos + 1 ; } else { String maybe = fieldDescriptorToBinaryName ( arglist . substring ( pos , nonarrayPos + 1 ) ) ; if ( maybe == null ) { // return null; throw new Error ( "Malformed arglist: " + arglist ) ; } result += maybe ; pos = nonarrayPos + 1 ; } } return result + ")" ; }
Convert an argument list from JVML format to Java format. For example, convert
"([Ljava/lang/Integer;I[[Ljava/lang/Integer;)" to "(java.lang.Integer[], int,
java.lang.Integer[][])".

@param arglist an argument list, in JVML format
@return argument list, in Java format
Convert an argument list from JVML format to Java format . For example convert ( [ Ljava / lang / Integer ; I [[ Ljava / lang / Integer ; ) to ( java . lang . Integer [] int java . lang . Integer [] [] ) .