code: public static List<String> getParameters(final String methodDesc) {
  //        final String[] types = resolveMethodSignature(methodDesc);
  //        return IntStream.range(0, types.length).mapToObj(i -> types[i]).collect(Collectors.toList());
          if (methodDesc == null)
              return emptyList();
  
          final char[] buffer = methodDesc.toCharArray();
          final List<String> args = new ArrayList<>();
  
          // TODO resolve type parameters correctly -> information useful? -> maybe use ASM's SignatureReader/Visitor
          int offset = methodDesc.indexOf('(') + 1;
          while (buffer[offset] != ')') {
              final String type = getNextType(buffer, offset);
              args.add(type);
              offset += type.length();// + (type.charAt(0) == 'L' ? 2 : 0);
          }
  
          // TODO change, see type parameters
          // prevent type parameter identifiers
          final ListIterator<String> iterator = args.listIterator();
          while (iterator.hasNext()) {
              final String arg = iterator.next();
              if (arg.charAt(0) == 'T')
                  iterator.set(OBJECT);
          }
  
          return args;
      }
docs: Returns the parameter types of the given method signature. Parametrized types are supported.