我有 2 个类 A 类和 B 类,其中 A 类扩展 B 类
现在在 Class A 的构造函数中,我有
Class A(Integer integerParam){
B superclass = new B(integerParam);
}
B类的构造函数如下
Class B(Integer integerParam) {
System.out.println(integerParam);
}
除此之外我在B类中还有几个方法如下
public void ClassBMethod(){
System.out.println(integerParam);
}
我想使用反射来调用父类(super class)方法ClassBMethod,我创建了一个父类(super class)的实例来这样做
Class superClazz = Class.forName(classInstance.getClass().getSuperclass().getName());
Constructor superClassconstructor = superClazz.getConstructor(new Class[]{Integer.class});
Object superclassInstance = superClassconstructor.newInstance(integerParam);
这里的问题是 Super 类的实例被创建了两次,一次是通过 A 类构造函数,第二次是通过反射。
如何在不创建实例的情况下调用避免这种情况并调用父类(super class)方法
最佳答案
每当调用类的构造函数时,都会调用其父类(super class)的构造函数,然后调用层次结构中上层类的构造函数,直到 Object
。这是无法避免的。
关于java - 反射中的父类(super class)构造函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14476752/