}
}
public static <T> List<String> filterConstructorParameters(Class<T> target, Collection<String> names) {
List<String> result = Collections.emptyList();
Paranamer paranamer = new AdaptiveParanamer();
for (Constructor<T> constructor : new Mirror().on(target).reflectAll().constructors()) {
List<String> constructorParameterNames = Arrays.asList(paranamer.lookupParameterNames(constructor, false));
if (result.size() < constructorParameterNames.size()) {
if (names.containsAll(constructorParameterNames)
&& constructorParameterTypesMatch(target, constructorParameterNames, Arrays.asList(constructor.getParameterTypes())))
result = constructorParameterNames;
}