Java反射库,它具有为任何具有任何构造器的类创建NewInstance的功能 [英] Java Reflection library that has a function to create NewInstance for any Class with any Constructor

查看:95
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆