Java反射库,它具有为任何具有任何构造器的类创建NewInstance的功能 [英] Java Reflection library that has a function to create NewInstance for any Class with any Constructor
本文介绍了Java反射库,它具有为任何具有任何构造器的类创建NewInstance的功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要寻找一个Java库,提供这样的,
的 invokeConstructor 。 (不想导入clojure.lang)
I am looking for a Java library that provides a function like this, invokeConstructor. (don't want to import clojure.lang)
推荐答案
apache commons-beanutils:
apache commons-beanutils:
Object args[] = ...;
Class<?> argTypes[] = ...;
Object obj = ConstructorUtils.invokeConstructor(clazz, args, argTypes);
Object obj = ConstructorUtils.invokeExactConstructor(clazz, args, argTypes);
invokeConstructor和invokeExactConstructor最大的区别在于前者会找到兼容的类型构造函数,而后者只会匹配你提供的确切参数类型。 (请参阅java.lang.Class.isAssignableFrom)
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)
这篇关于Java反射库,它具有为任何具有任何构造器的类创建NewInstance的功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文