我有2類的類&類B,其中Class A extends Class B
在反射超類的構造問題
現在,在一類的構造函數,我有
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);
}
我想使用反射來調用父類方法ClassBMethod,我創建超類的一個實例來完成這樣的
Class superClazz = Class.forName(classInstance.getClass().getSuperclass().getName());
Constructor superClassconstructor = superClazz.getConstructor(new Class[]{Integer.class});
Object superclassInstance = superClassconstructor.newInstance(integerParam);
的問題是這裏的超級類的實例創建兩次,一次通過A類構造函數,另一次通過反射。
我如何可以調用避免這種情況並調用父類的方法,而無需創建實例
這就是Java的精髓。你無法避免。此外,請閱讀Java命名約定。 – adarshr
相關 - 不重複雖然 - http://stackoverflow.com/questions/1878558/jump-over-parent-constructor-to-call-grandparents – Jayan
那麼,如果我不得不避免它,這將是什麼解決方法。 – Vivek