jar 파일로 컴파일하고 패키지 한 두 개의 Java 파일이 있습니다.Reflection이이 Main 클래스를 애플릿이 아닌 Object로 표시하는 이유는 무엇입니까?
// 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
슈퍼 클래스가 GameWindow
및 GameWindow's
슈퍼 클래스 Applet
을 할 것으로 기대하지만 위의 코드를 실행하면, 내가 받고있어 출력은 이러한 원인을
class java.lang.Object
class java.applet.Applet
입니다 결과?
Main이 확장되지 않은 이전 버전의 객체 코드로 실행 중입니다. 다시 컴파일하고 다시 테스트하십시오. – EJP
방금 재 컴파일하고 테스트하여 동일한 결과를 얻었습니다. – pLiKT
그것은 나를 위해 잘 작동합니다. 'Main'은'GameWindow'를 확장합니까? 'GameWindow m = new Main()'을 추가하고 다시 컴파일 해보십시오. –