Ada*_*m_G 3 java program-entry-point class subclass
内args[]的public static void main(String args[]),我想指定要执行哪个子类.如何将args[](a String)的参数转换为类声明?
例如,如果args[0]= "Subclass1",那么我需要声明:
BaseClass b = new Subclass1()
这可能与Java有关吗?
编辑
为了使这一步更加棘手,这些子类来自外部.jar.有没有办法动态导入子类,还是需要事先导入它们?
public static void main(String[] args) {
if (args.length > 0) {
// exceptions handling omitted
Class<?> clazz = Class.forName(args[0]);
// check before casting
if (BaseClass.class.isAssignableFrom(clazz)) {
BaseClass instance = (BaseClass) clazz.newInstance();
// use
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,className应该是该类的完整路径,即不仅是Subclass1,而且your.package.Subclass1.