假设我有以下三个类
爪哇
public class A {
public static void main (String[] args) {
new C();
}
}
B.java
import java.lang.reflect.Method;
import java.util.Arrays;
public class B {
public B() {
Method[] m = this.getClass().getDeclaredMethods();
System.out.println(Arrays.toString(m));
}
public void hello() {
}
}
C.java
public class C extends B{
public C() {
super();
}
}
我在 A 类中运行 main 方法。好吧,它应该实例化 C 类,而 C 类又应该调用 B 类的构造函数,以打印出声明的方法。输出是[]
。这让我感到惊讶,因为我期望输出是(假设所有类都在 package called 中test
):
[public void test.B.hello()]
那么,怎么了?我如何得到它,以便这是实际的输出?