【发布时间】:2011-02-02 18:23:09
【问题描述】:
类的main()方法可以在java中的另一个类中调用吗?
例如
class class1{
public static void main(String []args){
}
}
class class2{
public static void main(String []args){
class1.main();
}
}
【问题讨论】:
标签: java
类的main()方法可以在java中的另一个类中调用吗?
例如
class class1{
public static void main(String []args){
}
}
class class2{
public static void main(String []args){
class1.main();
}
}
【问题讨论】:
标签: java
是的,但前提是 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);
}
}
}
}
【讨论】:
Strings 与==(或!=)进行比较。
是的,只要它是公开的并且您传递了正确的参数。 有关更多信息,请参阅此链接。 http://www.codestyle.org/java/faq-CommandLine.shtml#mainhost
【讨论】:
如果你想调用另一个类的 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");
}
}
你想在另一个类中调用这个主方法。
public class CallClass{
public void call(){
ToBeCalledClass.main(null);
}
}
【讨论】:
main 参数!简单来说就是null
据我了解,问题不在于递归。我们可以轻松地调用您班级中另一个班级的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级
【讨论】:
试试这个代码
// Java method to show Calling main() method
// externally from the same class
import java.io.*;
class GFG {
static int count = 0;
// The method that calls the main() method
static void mainCaller()
{
System.out.println("mainCaller!");
count++;
// Calling the main() only 3 times
if (count < 3) {
// Calling the main() method
main(null);
}
}
// main() method
public static void main(String[] args)
{
System.out.println("main");
// Calling the mainCalller() method
// so that main() methiod is called externally
mainCaller();
}
}
【讨论】: