rest-assured/src/main/java/io/restassured/matcher/ResponseAwareMatcherComposer.java
@SuppressWarnings("unchecked")
    public static <T extends ResponseBody<T> & ResponseOptions<T>> ResponseAwareMatcher<T> and(
            final ResponseAwareMatcher<T> matcher1, final ResponseAwareMatcher<T> matcher2,
            final ResponseAwareMatcher<T>... additionalMatchers) {
        return response -> {
            Matcher<?>[] matchers = toHamcrestMatchers(response, matcher1, matcher2, additionalMatchers);
            return allOf((Matcher<? super Object>[]) matchers);
        };
    }
@SuppressWarnings("unchecked")
    public static <T extends ResponseBody<T> & ResponseOptions<T>> ResponseAwareMatcher<T> and(
            final ResponseAwareMatcher<T> matcher1, final ResponseAwareMatcher<T> matcher2,
            final ResponseAwareMatcher<T>... additionalMatchers) {
        return response -> {
            Matcher<?>[] matchers = toHamcrestMatchers(response, matcher1, matcher2, additionalMatchers);
            return allOf((Matcher<? super Object>[]) matchers);
        };
    }
@ SuppressWarnings ( "unchecked" ) public static < T extends ResponseBody < T > & ResponseOptions < T > > ResponseAwareMatcher < T > and ( final ResponseAwareMatcher < T > matcher1 , final ResponseAwareMatcher < T > matcher2 , final ResponseAwareMatcher < T > ... additionalMatchers ) { return response -> { Matcher < ? > [ ] matchers = toHamcrestMatchers ( response , matcher1 , matcher2 , additionalMatchers ) ; return allOf ( ( Matcher < ? super Object > [ ] ) matchers ) ; } ; }
Compose this {@link ResponseAwareMatcher} with another {@link ResponseAwareMatcher}.

@param matcher1           The first matcher to compose
@param matcher2           The second matcher to compose
@param additionalMatchers The additional matchers to compose
@return A and-composed {@link ResponseAwareMatcher}.
Compose this { @link ResponseAwareMatcher } with another { @link ResponseAwareMatcher } .