我正在查看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
不覆盖getPlan方法,它是Program接口(program.class)的抽象方法,并且只有静态main方法可以实例化为Program?