[英]Can a main() method of class be invoked from another class in java
可以在java中的另一个类中调用类的main()
方法吗?
例如
class class1{
public static void main(String []args){
}
}
class class2{
public static void main(String []args){
class1.main();
}
}
如果你想调用另一个类的 main 方法,你可以这样做,假设我理解这个问题。
public class MyClass {
public static void main(String[] args) {
System.out.println("main() method of MyClass");
OtherClass obj = new OtherClass();
}
}
class OtherClass {
public OtherClass() {
// Call the main() method of MyClass
String[] arguments = new String[] {"123"};
MyClass.main(arguments);
}
}
如果我答对了你的问题...
main() 方法在下面的类中定义...
public class ToBeCalledClass{
public static void main (String args[ ]) {
System.out.println("I am being called");
}
}
你想在另一个类中调用这个 main 方法。
public class CallClass{
public void call(){
ToBeCalledClass.main(null);
}
}
是的,但前提是 main 被声明为 public
是的,只要它是公开的并且您传递了正确的参数。 有关更多信息,请参阅此链接。http://www.codestyle.org/java/faq-CommandLine.shtml#mainhost
据我了解,问题与递归无关。 我们可以很容易地在你的类中调用另一个类的main
方法。 以下示例说明了静态和按对象调用。 注意Class2
static
一词的省略
class Class1{
public static void main(String[] args) {
System.out.println("this is class 1");
}
}
class Class2{
public void main(String[] args) {
System.out.println("this is class 2");
}
}
class MyInvokerClass{
public static void main(String[] args) {
System.out.println("this is MyInvokerClass");
Class2 myClass2 = new Class2();
Class1.main(args);
myClass2.main(args);
}
}
输出应该是:
这是包装类
这是 1 级
这是 2 级
当然。 这是一个完全愚蠢的程序,它演示了递归调用main
。
public class main
{
public static void main(String[] args)
{
for (int i = 0; i < args.length; ++i)
{
if (args[i] != "")
{
args[i] = "";
System.out.println((args.length - i) + " left");
main(args);
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.