JAVA中一个类的main函数调用另一个类的main函数

在JAVA中,同一个项目中,是允许多个类的存在main函数的。

其实,想一想就明白了,JAVA是真正的面向对象语言;所有程序的运行,都基于类;而每一个类,都应该是完整的。

main函数为static函数,在JAVA里,static函数可以直接使用类类型进行调用,也可以实例化一个对象进行调用。

也就是说,在JAVA里,可以直接调用另一个类的main函数。

当然,需要做的事情是,在运行的时候,需要给JVM指定特定的主类运行。如下图所示(Eclipse中):

代码如下:

class SupertTest {
	public static void main(String[] args) {		
		MainTest mainTest = new MainTest();
		mainTest.main(args);
	}
}

class MainTest {
	public static void main(String[] args) {
		System.out.println("Main Test");
	}
}

另外,还有一种方法,即调用反射方法;相当于暴露另一个类的函数接口,进行函数调用。整个程序功能如下:

import java.lang.reflect.Method;


class SupertTest {
	public static void main(String[] args) {
		//直接调用
		MainTest mainTest = new MainTest();
		mainTest.main(args);
		
        //采用反射方法调用
		ClassLoader classLoader = SupertTest.class.getClassLoader();
		
		try {
			Class<?> loadClass = classLoader.loadClass("MainTest");
			Method method = loadClass.getMethod("main", String[].class);
			method.invoke(null, new Object[] { new String[] {} } );
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

class MainTest {
	public static void main(String[] args) {
		System.out.println("Main Test");
	}
}

程序输出 

Main Test
Main Test

说明程序正确运行。

 


版权声明:本文为wangzhezhilu001原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。