Stubbing un método que toma la clase <T> como parámetro con Mockito

Hay un método genérico que toma una clase como parámetro y tengo problemas para tropezar con Mockito. El método se ve así:

public <U extends Enum<U> & Error, T extends ServiceResponse<U>> T validate(
    Object target, Validator validator, Class<T> responseClass,
    Class<U> errorEnum);

Es horrible, al menos para mí ... Me podría imaginar vivir sin él, pero el resto de la base de código lo usa felizmente ...

Iba a, en mi prueba unitaria, restregar este método para devolver un nuevo objeto vacío. ¿Pero cómo hago esto con mockito? Lo intenté

when(serviceValidatorStub.validate(
    any(), 
    isA(UserCommentRequestValidator.class), 
    UserCommentResponse.class, 
    UserCommentError.class)
).thenReturn(new UserCommentResponse());

pero como estoy mezclando y haciendo coincidir los emparejadores y los valores sin procesar, obtengo "org.mockito.exceptions.misusing.InvalidUseOfMatchersException: ¡Uso no válido de emparejadores de argumentos!"

Respuestas a la pregunta(3)

Su respuesta a la pregunta