我正在从 org.apache.flink.client.program 和以下构造函数中查看 PackagedProgram.java:
PackagedProgram(File jarFile, List<URL> classpaths, String entryPointClassName, String... args)
有一些我无法理解的代码;请看下面:
this.mainClass = loadMainClass(entryPointClassName, userCodeClassLoader);
if (Program.class.isAssignableFrom(this.mainClass)) {
Program prg = null;
try {
prg = InstantiationUtil.instantiate(this.mainClass.asSubclass(Program.class), Program.class);
}
这怎么能this.mainClass
不覆盖作为 Program 接口(program.class)的抽象方法并且只有静态 main 方法被实例化为 Program 的 getPlan 方法?