Java Reflection library that has a function to cre

2019-09-21 08:43发布

问题:

I am looking for a Java library that provides a function like this, invokeConstructor. (don't want to import clojure.lang)

回答1:

apache commons-beanutils:

Object args[] = ...;
Class<?> argTypes[] = ...;
Object obj = ConstructorUtils.invokeConstructor(clazz, args, argTypes);
Object obj = ConstructorUtils.invokeExactConstructor(clazz, args, argTypes);

The big difference between "invokeConstructor" and "invokeExactConstructor" is that the former will find a type assignment compatible constuctor, while the latter will match only the exact argument types you've supplied. (see java.lang.Class.isAssignableFrom)