7 java reflection inheritance extends getconstructor
让我们说我有课程,A并B在哪里B扩展A.我也有一个B带有一个类型参数的构造函数A.我也有一个B叫做类型的对象bObj.
有没有办法调用B.class.getConstructor(new Class[] { bObj.getClass() })并获得构造函数,因为B扩展A?目前我正在得到一个NoSuchMethodException.
此致,斯坦
我建议你看看ConstructorUtils来自Apache的百科全书郎.
他们拥有构造函数发现方法的所有方式.
您的案例应由" 匹配可访问的构造函数 " 涵盖.
以下是上下文中使用的方法的示例.基本上,你这样称呼它:
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
}
}
Run Code Online (Sandbox Code Playgroud)