I suggest you have a look at the ConstructorUtils
from Apache Commons Lang.
They have all manners of constructor discovery methods.
Your case should be covered by "Matching Accessible Constructors".
Here is an example of the method used in context. Basically, you call it like this:
private <T> T instantiate(Class<?> input, Object parameter) {
try {
Constructor<?> constructor = ConstructorUtils.getMatchingAccessibleConstructor(input, parameter.getClass());
return (T) constructor.newInstance(parameter);
} catch (Exception e) {
//handle various exceptions
}
}