类的main()方法可以从java中的另一个类调用吗

类的main()方法可以从java中的另一个类调用吗,java,Java,类的main()方法能否在java中的另一个类中调用 e、 g 是的,但只有在main声明为public时才可以确定。下面是一个非常愚蠢的程序,它演示了递归调用main public class main { public static void main(String[] args) { for (int i = 0; i < args.length; ++i) { if (args[i] != "")

类的
main()
方法能否在java中的另一个类中调用

e、 g


是的,但只有在main声明为public时才可以

确定。下面是一个非常愚蠢的程序,它演示了递归调用
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);
            }
        }

    }
}
公共类主
{
公共静态void main(字符串[]args)
{
对于(int i=0;i
是,只要它是公共的并且您传递了正确的参数。 有关更多信息,请参阅此链接。
如果你想调用另一个类的main方法,你可以这样做,假设我理解这个问题

公共类MyClass{
公共静态void main(字符串[]args){
System.out.println(“MyClass的main()方法”);
OtherClass obj=新的OtherClass();
}
}
另一类{
公共类(){
//调用MyClass的main()方法
字符串[]参数=新字符串[]{“123”};
main(参数);
}
}

如果我答对了你的问题

main()方法在下面的类中定义

public class ToBeCalledClass{

   public static void main (String args[ ]) {
      System.out.println("I am being called");
   }
}
您想在另一个类中调用此主方法

public class CallClass{

    public void call(){
       ToBeCalledClass.main(null);
    }
}

据我所知,问题不在于递归。我们可以很容易地调用您的类中另一个类的
main
方法。下面的示例演示了静态和按对象调用。注意
Class2

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);
    }    
}
输出应为:

这是包装类

这是一班

这是二班


... 或者是受保护的,或者是包私有的,或者你对反射做了一些棘手的事情,允许它被调用,尽管它是私有的。。。这将创造一个无限的世界loop@mmcrae这是递归,不是循环。递归从来都不是无限的。等等……为什么递归不是无限的?你可以毁掉你的堆栈,但这只是一个实际的限制,如果你从来没有朝着基本情况(或者根本不存在基本情况)前进,那么数学递归当然可以是无限的。@JPC这不是数学递归。这是计算机编程。所有资源都是有限的。太好了。我想知道把什么作为
main
参数!简单地说,它是
null
至少不要将
String
s与
=
(或
!=
)进行比较。
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);
    }    
}