为什么Reflection将此Main类显示为Object而不是Applet?

时间:2014-02-24 20:42:25

标签: java inheritance reflection applet japplet

我有两个java文件,我已经编译并打包成一个jar文件。

// Main.java
public class Main extends GameWindow {
  public static void main(String[] args) {
    System.out.println("hello reflection!");
  }
}

// GameWindow.java
import java.applet.Applet;
public abstract class GameWindow extends Applet { }

我正在使用Java Reflection库打印出Main和GameWindow的父类。

Class<?> main = Class.forName("Main");
System.out.println(main.getSuperclass() );

Class<?> gamewindow = Class.forName("GameWindow");
System.out.println(gamewindow.getSuperclass() );

我希望Main's超级类为GameWindowGameWindow's超级类为Applet,但是当我运行上面的代码时,我收到的输出是

class java.lang.Object
class java.applet.Applet

导致这些结果的原因是什么?

1 个答案:

答案 0 :(得分:0)

我几乎可以肯定你正试图查找错误的课程。尝试使用

Class<?> main = Class.forName("yourpackage.Main");