diff --git a/src/main/java/com/jcabi/http/request/BaseRequest.java b/src/main/java/com/jcabi/http/request/BaseRequest.java index eb6f87d5..d88a418b 100644 --- a/src/main/java/com/jcabi/http/request/BaseRequest.java +++ b/src/main/java/com/jcabi/http/request/BaseRequest.java @@ -284,8 +284,15 @@ public Request through(final Class type, Constructor ctor = null; for (final Constructor opt : type.getDeclaredConstructors()) { if (opt.getParameterTypes().length == args.length + 1) { - ctor = opt; - break; + final Class[] types = opt.getParameterTypes(); + boolean allmatch = true; + for (int i = 1; i < types.length && allmatch; i++) { + allmatch &= types[i].isAssignableFrom(args[i - 1].getClass()); + } + if (allmatch) { + ctor = opt; + break; + } } } if (ctor == null) {