public static <T extends MethodDescription> ElementMatcher.Junction<T> takesGenericArguments(List<? extends TypeDefinition> types) {
        List<ElementMatcher<? super TypeDescription.Generic>> typeMatchers = new ArrayList<ElementMatcher<? super TypeDescription.Generic>>();
        for (TypeDefinition type : types) {
            typeMatchers.add(is(type));
        }
        return takesGenericArguments(new CollectionOneToOneMatcher<TypeDescription.Generic>(typeMatchers));
    }
public static < T extends MethodDescription > ElementMatcher . Junction < T > takesGenericArguments ( List < ? extends TypeDefinition > types ) { List < ElementMatcher < ? super TypeDescription . Generic > > typeMatchers = new ArrayList < ElementMatcher < ? super TypeDescription . Generic > > ( ) ; for ( TypeDefinition type : types ) { typeMatchers . add ( is ( type ) ) ; } return takesGenericArguments ( new CollectionOneToOneMatcher < TypeDescription . Generic > ( typeMatchers ) ) ; }
Matches a method description that takes the provided generic arguments.

@param types The arguments to match against the matched method.
@param <T>   The type of the matched object.
@return A method matcher that matches a method's generic parameter types against the supplied arguments.