java - 反射中的父类(super class)构造函数问题

标签 java

我有 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/

相关文章:

java - Netbeans 中的 JTable : how do display table of many columns

java - 无法在 Android 中正确实现我的线程

java - IClassFile 注释

java - 无法访问生成的java文件

java - CSV 到 RDD 到 Apache Spark 中的 Cassandra 存储

java - Spring jdbcTemplate 与 PreparedStatement。性能差异

java - 两键哈希集?

java - java 方法 : isAssignableFrom(Class<? 上的奇怪行为 >)

java - Apache Wicket - 将 HTML 添加到反馈面板

java - 如何确定图形字符串的长度?