if (element.isClassType() && element.getName().toString().startsWith("java.lang.String")) {
if (element.equals(VM_TypeReference.JavaLangString)) {
  static int parseMethodArgs(VM_TypeReference[] argDesc, String[] args, int i,			     Object[] methodArgs){    try {      for (int argNum = 0; argNum < argDesc.length; ++argNum) {	if (argDesc[argNum].isBooleanType()) {	  methodArgs[argNum] = Boolean.valueOf(args[++i]);	} else if (argDesc[argNum].isByteType()) {	  methodArgs[argNum] = Byte.valueOf(args[++i]);	} else if (argDesc[argNum].isShortType()) {	  methodArgs[argNum] = Short.valueOf(args[++i]);	} else if (argDesc[argNum].isIntType()) {	  methodArgs[argNum] = Integer.valueOf(args[++i]);	} else if (argDesc[argNum].isLongType()) {	  methodArgs[argNum] = Long.valueOf(args[++i]);	} else if (argDesc[argNum].isFloatType()) {	  methodArgs[argNum] = Float.valueOf(args[++i]);	} else if (argDesc[argNum].isDoubleType()) {	  methodArgs[argNum] = Double.valueOf(args[++i]);	} else if (argDesc[argNum].isCharType()) {	  methodArgs[argNum] = new Character(args[++i].charAt(0));	} else if (argDesc[argNum].isClassType()) {	  // TODO	  System.err.println("Parsing args of type " + argDesc[argNum] + " not implemented");	} else if (argDesc[argNum].isArrayType()) {          VM_TypeReference element = argDesc[argNum].getArrayElementType();          if (element.isClassType() &&               element.getName().toString().startsWith("java.lang.String")) {	    String[] array = new String[args.length-i-1];	    for (int j = 0; j < array.length; j++) {	      array[j] = args[++i];	    }	    methodArgs[argNum] = array;           } else {// TODO	    System.err.println("Parsing args of array of " + element + 			       " not implemented");	  }	}      }    } catch (ArrayIndexOutOfBoundsException e) {      throw new InternalError("Error: not enough method arguments specified on command line after -er");    }    return i;  }