gpt4 book ai didi

Java 反射 getConstructor 方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:16:00 25 4
gpt4 key购买 nike

假设我有类 AB,其中 B 扩展 A。我在 B 中也有一个构造函数,带有一个类型为 A 的参数。我还有一个名为 bObjB 对象。

有没有办法调用 B.class.getConstructor(new Class[] { bObj.getClass() }) 并获取构造函数,因为 B extends 一个?目前我得到了一个 NoSuchMethodException

最佳答案

我建议你看看 ConstructorUtils来自 Apache Commons Lang .
他们有各种各样的构造函数发现方法。

您的案例应包含在“Matching Accessible Constructors ”中。

Here是上下文中使用的方法的示例。基本上,您可以这样调用它:

 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
}
}

关于Java 反射 getConstructor 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13508720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com