类的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);
}
}